0

すでにデータベースに接続できましたが、次のコードを使用して接続しました。

static void Main(string[] args)
{
    using (NpgsqlConnection conn= new NpgsqlConnection(
        "Host=xxx.xx.xx.xxx;Port=5432;User Id=Admin;Password=postgres.1;Database=Test1;")) 
    {
        conn.Open();

        NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM TABLE1", conn);

        try
        {
            NpgsqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    Console.Write("{0} \t", dr[i]);
                }
                Console.WriteLine();
            }
            dr.Close();
        }
        finally
        {
            conn.Close();
        }
    }

    Console.ReadLine();
}

どうやら、データベース内のテーブルのクラスを何らかの方法で生成し、それらを使用して接続する必要があるようですNpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM TABLE1", conn);。すでに DbLinq の DbMetal を使用しようとしましたが、次のエラー メッセージが表示されます。

DbMetal : サーバーが接続を閉じました。

私はこれを研究してきましたが、有用なものは見つかりませんでした。

できれば助けてください。なんか急です。

前もって感謝します。

4

1 に答える 1

1

NpgsqlDataAdapterとDataSetが必要だと思います

            DataSet ds = new DataSet();
            NpgsqlDataAdapter da = new NpgsqlDataAdapter(); 
            da.SelectCommand = cmd;
            da.Fill(ds);
            return ds;

これで、DataSetにテーブル(ds.Tables [0])が含まれ、そのテーブルで選択されたすべての行が含まれます

            foreach(DataRow r in ds.Tables[0].Rows)
                 Console.WriteLine(r["ColumnName"].ToString());
于 2012-08-08T07:25:56.190 に答える