初学C#,我想把一个表的数据加载到dataView中,让用户编辑,
加载数据的代码如下:
private void button32_Click(object sender, EventArgs e)
{
string str = "Server=192.168.0.1; User id=sa;Pwd=1;Database=hos";//创建连接字串
SqlConnection Sqlconn = new SqlConnection(str); //创建连接对象
Sqlconn.Open(); //打开连接
string strsql = "select * from table1"; //执行查询
SqlDataAdapter da = new SqlDataAdapter(strsql, Sqlconn); //使用DataAdapter
DataSet ds = new DataSet(); //使用DataSet
da.Fill(ds, "testTable");
dataGridView2.DataSource = ds;
dataGridView2.DataMember = "testTable";
}
这样数据就加载到了datagrid中,现在想请大家帮写一下数据保存的代码。就是用户修改了这个表中的数据后,点一下按钮就能保存回数据库。我按照书上写的方法做时,出错,“当传递具有已修改行的datarow集合时,更新要求有效的updatecommand”,看了一下网上的文章说是表要有主键,但是我的表已建有主键啊。
请大家帮写一段保存修改的代码。谢谢啦。
加载数据的代码如下:
private void button32_Click(object sender, EventArgs e)
{
string str = "Server=192.168.0.1; User id=sa;Pwd=1;Database=hos";//创建连接字串
SqlConnection Sqlconn = new SqlConnection(str); //创建连接对象
Sqlconn.Open(); //打开连接
string strsql = "select * from table1"; //执行查询
SqlDataAdapter da = new SqlDataAdapter(strsql, Sqlconn); //使用DataAdapter
DataSet ds = new DataSet(); //使用DataSet
da.Fill(ds, "testTable");
dataGridView2.DataSource = ds;
dataGridView2.DataMember = "testTable";
}
这样数据就加载到了datagrid中,现在想请大家帮写一下数据保存的代码。就是用户修改了这个表中的数据后,点一下按钮就能保存回数据库。我按照书上写的方法做时,出错,“当传递具有已修改行的datarow集合时,更新要求有效的updatecommand”,看了一下网上的文章说是表要有主键,但是我的表已建有主键啊。
请大家帮写一段保存修改的代码。谢谢啦。
try
{
NorthwindDataSet changes = (NorthwindDataSet)northwindDataSet.GetChanges();
if (changes == null)
{
return;
}
DataTable dt = changes.Tables["testTable"];
DataRow[] badRows = dt.GetErrors();
if (badRows.Length == 0)
{
int numRows = SqlDataAdapter.Update(changes);
MessageBox.Show("Updated " + numRows + " rows", "Success");
northwindDataSet.AcceptChanges();
........“不用写代码,gridview前台再带编辑保存的功能。” -您倒是讲清楚啊,我修改后再刷新一下怎么还是旧数据呢?
可以自定义列的类型,添加到datagridveiw中!1、如何才能在DataGridView中添加NumericUpDown控件列?
参考:http://msdn.microsoft.com/en-us/library/aa730881%28VS.80%29.aspx2、C# WinForm开发系列 - DataGridView
http://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html