C#postgres数据库连接

时间:2012-08-08 07:19:01

标签: 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();

        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:服务器已关闭连接。

我一直在研究这个,但我没有找到任何有用的东西。

如果可以,请帮忙。这有点紧急。

提前致谢。

1 个答案:

答案 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());