0

相信我,我已经用谷歌搜索过了。很明显,由于半明显的原因,win-forms 上使用的 C# 代码在 C# WPF 上不起作用。但是,不明显的是如何使用来自数据网格的修改过的或全新的数据填充 MYSQL 表。不过反过来它也能正常工作(用 MYSQL 数据填充数据网格)。

    private void Save_Click(object sender, RoutedEventArgs e)
    {
        string sqlcon = "datasource = localhost; port = 3306; username = root; password = Avalisque";
        string queryadd = "insert into users.login (user_name,pass_word,gender,first_name,second_name,third_name,surname,security_question,answer);";
        MySqlConnection con = new MySqlConnection(sqlcon);
        MySqlCommand cmd = new MySqlCommand(queryadd, con);
        MySqlDataAdapter da = new MySqlDataAdapter(cmd);
        DataSet ds = new DataSet();


        try
        {
            con.Open();
            cmd.ExecuteNonQuery();

            DataTable dt = new DataTable("login");
            da.Fill(ds);
            DG.datasource = ds.Tables[0];
            da.Update(dt);

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


    }

(DG 是数据网格)。这是错误消息:

“System.Windows.Controls.DataGrid”不包含“数据源”的定义,并且找不到接受“System.Windows.Controls.DataGrid”类型的第一个参数的扩展方法“数据源”(您是否缺少 using 指令还是汇编参考?)

任何形式的帮助都非常感谢。这里有点绝望。请和谢谢。

4

2 回答 2

0

我认为你有一个属性 ItemsSource。

也不要忘记 wpf 与 mvvm 模式配合得很好。事实上,您的 itemsource 可能应该是您的 viewModel 中可用的 ObservableCollection。

于 2013-10-23T16:54:58.293 回答
0

我想你正在寻找DG.ItemsSource = ds.Tables[0].AsEnumerable();

您收到该错误是因为System.Windows.Controls.DataGrid没有名为 的属性datasource

DataTableExtensions.AsEnumerable向您展示如何将 DataTable 变成 Enumarable where T : DataRow

于 2013-10-23T16:53:27.687 回答