【问题标题】:Fill MYSQL database with datagrid information in C# wpf在 C# wpf 中用数据网格信息填充 MYSQL 数据库
【发布时间】:2013-11-02 01:43:42
【问题描述】:

相信我,我已经用谷歌搜索过了。很明显,由于半明显的原因,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”不包含“datasource”的定义,并且找不到接受“System.Windows.Controls.DataGrid”类型的第一个参数的扩展方法“datasource”(您是否缺少 using 指令或程序集引用?)

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

【问题讨论】:

    标签: c# mysql datatable wpfdatagrid itemssource


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,当我这样做时,我会收到此消息:- 无法将类型“System.Data.DataTable”隐式转换为“System.Collections.IEnumerable”。存在显式转换(您是否缺少演员表?) -: ds.Tables[0];带下划线...
    • @Tim 我更新了我的答案以使 DataTable 可枚举。我认为这应该有效。如果还有问题,请告诉我。
    • 谢谢。一直在玩它,但到目前为止没有运气:/无法将方法组“AsEnumerable”转换为非委托类型“System.Collections.IEnumerable”。您是否打算调用该方法?这就是错误信息。叹息#
    • @Tim 添加了括号以使其成为方法调用。抱歉弄错了。
    • @Tim 这对您有帮助吗?如果是这样,请 +1 和/或将其标记为答案。如果没有,请告诉我我还能做些什么来提供帮助。
    【解决方案2】:

    我认为你有一个属性 ItemsSource。

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

    【讨论】:

    • “ObservableCollection”一直在谷歌上搜索。似乎它在实现上很容易工作,但据我所知,通信似乎只有一种方式,比如进入 MMYSQL 数据库。我错过了什么吗?请给我一个提示。
    • 好吧,我建议使用 mvvm 使用 observableCollection,因为我认为这是一个很好的方法,但解释起来很长。谷歌 mvvm wpf。否则,您可以在此处找到使用数据表的方法,例如:stackoverflow.com/questions/6984686/…
    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2013-12-19
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多