我在一个名为“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);
}
}
答案 0 :(得分:1)
DataRow
有no 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];