【发布时间】:2014-05-24 17:24:09
【问题描述】:
我正在尝试使用以下方法在数据网格上显示我的数据库详细信息。我能够与数据库建立连接并进行更新,所以一切都很好。只是在进行查询后显示数据有问题。
下面的第一个方法查询进行查询。我正在尝试使用该信息并在单击按钮时调用的第二种方法下运行代码。
我在调用我的查询方法时遇到问题。我的印象是我可以在 adapter.SelectCommand 下调用它,但这会返回一个错误,说“无法隐式转换类型”。如果我错误地运行查询,请提出建议。谢谢。
public MySqlDataReader Query(string queryString)
{
MySqlDataReader reader;
MySqlCommand cmd2;
try
{
cmd2 = new MySqlCommand(queryString, conn);
reader = cmd2.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetDouble(2));
}
return reader;
}
catch(Exception e)
{
Console.WriteLine("Error in query");
Console.Read();
}
return null;
}
private void Button_Retrieve(object sender, RoutedEventArgs e)
{
try
{
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = dataSource.Query("SELECT * FROM PERSONS WHERE Name = 'Sam';");//THis line returns the error
DataTable dt = new DataTable("PERSONS");
adapter.Fill(dt);
dataGrid1.ItemsSource = dt.DefaultView;
adapter.Update(dt);
}
catch (Exception error)
{
MessageBox.Show(error.StackTrace);
}
}
【问题讨论】:
-
什么是 dataSource.Query?似乎它没有返回 MySqlCommand。
-
是上面提到的第一个方法Query()。它在另一个类中,dataSource 是该类的实例,因此以这种方式调用它。
-
如果我正确获取了您的代码,当您想要将数据读取器放入数据表时,您不需要任何适配器,只需使用数据表中的加载方法,它有一个数据读取器参数。 msdn.microsoft.com/de-de/library/…