Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C postgres数据库连接_C#_Database_Postgresql - Fatal编程技术网

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上没有帮助。没问题。但这对我来说几乎是一条死胡同。什么也找不到。至少明天是我实习的最后一天: