大家帮偶看看下面哪里错了,为什么无法更新修改后的数据到数据库呢?
更新的时候提示:“Update 无法找到 TableMapping['Table'] 或 DataTable“Table”。 ”
但如果用数据适配器,直接拖动控件去填充生成数据集的,更新却没有错误,所以排除不是表的问题(有设主键的)。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
…………………………
//类中声明了
private SqlDataAdapter sda;
private DataSet ds;
…………………………
//从数据库读入数据到dataGrid里
private void button1_Click(object sender, System.EventArgs e)
{
SqlConnection con = new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");
con.Open();
sda = new SqlDataAdapter("select * from titles",con);
ds = new DataSet();
sda.Fill(ds,"titles");
this.dataGrid1.DataSource=ds.Tables[0];
}
//更新修改后的数据到数据库
private void button2_Click(object sender, System.EventArgs e)
{
try
{
DataSet changedData = this.ds.GetChanges();
if(changedData !=null)
{
int changedRows = this.sda.Update(changedData);
MessageBox.Show("数据成功更新" + changedRows + "了条记录","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.ds.AcceptChanges();
}
else
{
MessageBox.Show("没有要更新的记录","没有改变",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
catch(Exception E)
{
MessageBox.Show("更新数据库时发生错误:" + E.Message + "","错误",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.ds.RejectChanges();
}
}