C# C postgres数据库连接
我已经成功连接到数据库,但我使用了以下代码进行连接C# C postgres数据库连接,c#,database,postgresql,C#,Database,Postgresql,我已经成功连接到数据库,但我使用了以下代码进行连接 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(); Npgsql
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();
}
显然,我必须以某种方式为数据库中的表生成类,并使用这些类来连接,而不是使用康涅狄格州TABLE1中的NpgsqlCommand cmd=new NpgsqlCommandSELECT*;。已尝试使用DbLinq的DbMetal,但收到错误消息:
DbMetal:服务器已关闭连接
我一直在研究这个,但没有发现任何有用的东西
如果可以的话,请帮忙。有点紧急
提前谢谢。我想您需要一个NpgsqlDataAdapter和一个数据集
DataSet ds = new DataSet();
NpgsqlDataAdapter da = new NpgsqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
现在,您的数据集包含一个表ds.Tables[0],该表包含所有选定行
foreach(DataRow r in ds.Tables[0].Rows)
Console.WriteLine(r["ColumnName"].ToString());
也许这有助于提醒:DbLinq可能有缺陷@这些是我遵循的指示。用cmd和mono都试过了。它连接了一秒钟,然后失去了连接。我不认为这是我要找的,但是谢谢你的回答。很抱歉,但我想更好地理解。你能详细说明一下“为表生成类”吗?所以我的主管说我不应该使用任何命令,比如C中的SELECT*命令,而应该使用描述数据库中表的类。他说我应该用那些。他建议使用dbLinq,它有一个应用程序DbMetal,如果给它一个连接字符串,它将连接到给定的数据库并返回一个类,例如:Table1.cs,然后它将被复制到我的程序中。谢谢你的澄清,抱歉,但在dbLinq上没有帮助。没问题。但这对我来说几乎是一条死胡同。什么也找不到。至少明天是我实习的最后一天: