Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C#wpf中的datagrid信息填充MYSQL数据库_C#_Mysql_Datatable_Wpfdatagrid_Itemssource - Fatal编程技术网

用C#wpf中的datagrid信息填充MYSQL数据库

用C#wpf中的datagrid信息填充MYSQL数据库,c#,mysql,datatable,wpfdatagrid,itemssource,C#,Mysql,Datatable,Wpfdatagrid,Itemssource,相信我,我已经用谷歌搜索过了。很明显,win表单上使用的C#代码在C#WPF上不起作用,原因很明显。但不明显的是如何用数据网格中修改过的或全新的数据填充MYSQL表。相反,它也可以正常工作(用MYSQL数据填充datagrid) (DG是数据网格)。 这是错误消息: “System.Windows.Controls.DataGrid”不包含“datasource”的定义,并且找不到接受“System.Windows.Controls.DataGrid”类型的第一个参数的扩展方法“datasour

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

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

“System.Windows.Controls.DataGrid”不包含“datasource”的定义,并且找不到接受“System.Windows.Controls.DataGrid”类型的第一个参数的扩展方法“datasource”(是否缺少using指令或程序集引用?)


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

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

由于没有名为
datasource
的属性,因此出现该错误


演示如何将DataTable制作成可枚举的,其中T:DataRow

我认为您有一个属性ItemsSource


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

是的,当我这样做时,我收到以下消息:-无法将类型“System.Data.DataTable”隐式转换为“System.Collections.IEnumerable”。存在显式转换(是否缺少转换?)-:ds.Tables[0];带下划线…@Tim我更新了答案,使数据表可枚举。我认为这应该行得通。如果还有问题,请告诉我。谢谢。一直在玩弄它,但到目前为止运气不佳:/无法将方法组“AsEnumerable”转换为非委托类型“System.Collections.IEnumerable”。您是否打算调用该方法?这就是错误信息。sigh#@Tim添加了括号,使其成为方法调用。对不起,这个错误。@Tim帮了你的忙。如果是,请+1和/或将其标记为答案。如果没有,请让我知道我还能做些什么来帮助我。看起来它在实现上非常容易,但据我所知,通信似乎只有一种方式,比如进入MMYSQL数据库。我错过什么了吗?请给我一个提示。好的,tim,我建议使用mvvm进行一次可观察的收集,因为我认为这是一个很好的方法,但解释起来很长。谷歌MVVMWPF。否则,您可以在此处找到使用数据表的方法,例如:
    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);
        }


    }