c#-值不能为null.参数名称:dataSource.编辑Datagrid并保存到数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-值不能为null.参数名称:dataSource.编辑Datagrid并保存到数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2448字,纯文字阅读大概需要4分钟。
内容图文
![c#-值不能为null.参数名称:dataSource.编辑Datagrid并保存到数据库](/upload/InfoBanner/zyjiaocheng/884/3f7a46d891544235aee903f6c993e23b.jpg)
您好,我在这里遇到问题.代码看起来像这样.
private void Form3_Load(object sender, EventArgs e)
{
string connectionString =
"Server=localhost;" +
"Database=oroderm;" +
"User ID=root;" +
"Password=root;" +
"Pooling=false";
string query = "Select * from client";
MySqlConnection conn = new MySqlConnection(connectionString);
MySqlDataAdapter dAdapter = new MySqlDataAdapter(query, connectionString);
conn.Open();
DataSet ds = new DataSet();
MySqlCommandBuilder cBuilder = new MySqlCommandBuilder(dAdapter);
dAdapter.Fill(ds, "client");
BindingSource bSource = new BindingSource();
bSource.DataSource = ds.Tables["client"];
dataGridView2.DataSource = bSource;
}
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = ds.Tables["client"];
this.dataGridView2.BindingContext[dt].EndCurrentEdit();
this.da.Update(dt);
}
所以我想要的是,每当我在Datagrid中编辑值时,单击button1(保存按钮)后,它将影响我的数据库.例如如果更改名称后我以罗马人为客户,然后单击button1,则应该更改.但是,我获取值不能为null错误.请有人帮忙. T_T
*编辑:这是更新的代码
private MySqlDataAdapter _da;
private DataTable _dt;
private DataSet _ds;
private void Form3_Load(object sender, EventArgs e)
{
updateClient();
}
public void updateClient()
{
string connectionString =
"Server=localhost;" +
"Database=oroderm;" +
"User ID=root;" +
"Password=root;" +
"Pooling=false";
string query = "select * from client";
MySqlConnection conn = new MySqlConnection(connectionString);
_da = new MySqlDataAdapter(query, connectionString);
conn.Open();
_ds = new DataSet();
MySqlCommandBuilder cBuilder = new MySqlCommandBuilder(_da);
_da.Fill(_ds, "client");
BindingSource bSource = new BindingSource();
bSource.DataSource = _ds.Tables["client"];
dataGridView2.DataSource = bSource;
_da.UpdateCommand = cBuilder.GetUpdateCommand();
}
private void button1_Click(object sender, EventArgs e)
{
_dt = _ds.Tables["client"];
this.dataGridView2.BindingContext[_dt].EndCurrentEdit();
this._da.Update(_dt);
}
解决方法:
我假设您有一个名为ds的实例变量,并且您希望使用Form3_Load方法填充它?那不会发生-因为在Form3_Load中,您已经得到了以下信息:
DataSet ds = new DataSet();
那是在声明一个名为ds的新局部变量,因此,除非您在方法中明确使用this.ds,否则您将不会更改实例变量的值.
我有点惊讶,当您单击按钮时没有收到NullReferenceException,但是也许您有一些代码可以创建一个空的DataSet并在某个地方分配对ds实例变量的引用.无论如何,将上面显示的行更改为:
ds = new DataSet();
应该解决这个问题.
(请牢记,我强烈建议您不要在UI线程中发出数据库请求,并且应该为连接使用using语句,但这是分开的事情.)
内容总结
以上是互联网集市为您收集整理的c#-值不能为null.参数名称:dataSource.编辑Datagrid并保存到数据库全部内容,希望文章能够帮你解决c#-值不能为null.参数名称:dataSource.编辑Datagrid并保存到数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。