在数据网格上显示数据库详细信息

时间:2014-04-10 19:45:23

标签: c# mysql sql wpf datagrid

我正在尝试使用以下方法在数据网格上显示我的数据库详细信息。我能够与数据库建立连接并进行更新,这样就可以了。在查询后显示数据时遇到问题。

下面的第一个方法查询执行查询。我试图使用该信息并运行第二种方法下的代码,当我点击一个按钮时调用该方法。

我有问题callign我的查询方法。我的印象是我可以在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);
            }
        }

1 个答案:

答案 0 :(得分:0)

您的适配器没有连接

// Assumes that connection is a valid SqlConnection object.
string queryString = 
  "SELECT CustomerID, CompanyName FROM dbo.Customers";
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

DataSet customers = new DataSet();
adapter.Fill(customers, "Customers");