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 回答