我已经设法连接到数据库,但我使用以下代码进行连接。
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:服务器已关闭连接。
我一直在研究这个,但我没有找到任何有用的东西。
如果可以,请帮忙。这有点紧急。
提前致谢。
答案 0 :(得分: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());