显示SQL语句时出错

时间:2015-01-16 08:38:48

标签: c# sql select

我在一个名为“Database”的数据库中创建了一个名为“Client”的表,但是当我尝试显示某个select查询的结果时,它给了我错误

  

“错误1'System.Data.DataRow'是'类型',但用作'变量'

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        string myConnection = 
            "datasource=localhost;port=3306;username=abc;password=xyz";

        MySqlConnection myConn = new MySqlConnection(myConnection);
        MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
        myDataAdapter.SelectCommand = new MySqlCommand(
            "select * from  Database.Client", myConn);

        MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
        myConn.Open();

    //    MessageBox.Show("Connected");

        DataSet ds = new DataSet();
        DataRow dr = new DataRow();
        DataTable dt;

        myDataAdapter.Fill(ds, "Client");
        dt = ds.Tables["Client"];
        dr = dt.Rows[0];

        dg.DataSource = ds.Tables["Client"];

        myConn.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

2 个答案:

答案 0 :(得分:1)

DataRowno public constructor

所以这不起作用:

DataRow dr = new DataRow();

而是稍后从DataRowCollection - 索引器初始化它:

DataRow dr = null;
// ...
dr = dt.Rows[0];

但是,编译器错误应该不同(.... 由于其保护级别而无法访问)。

答案 1 :(得分:0)

您无法创建新的DataRow实例。所以删除这一行:

DataRow dr = new DataRow();

在这一行上这样做:

var dr = dt.Rows[0];

或者你可以输入这样的标识:

DataRow dr = dt.Rows[0];