未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: Update 无法找到 TableMapping['TableName'] 或 DataTable“TableName”。
我一个按钮事件如下(其他部分省略):
private void buttonAppend_Click(object sender, System.EventArgs e)
{
//清空数据集
dataSet1.Clear();
//连接数据库
Mcl.DataModules.DMSqlServer MyDMnew2 = new Mcl.DataModules.DMSqlServer();
MyDMnew2.SelectData(dataSet1,"Select * from Chat","Chat");
dataGrid1.DataSource = dataSet1.Tables["Chat"].DefaultView;
//创建并生成新的行
dataTable1 = dataSet1.Tables[0];
DataRow newRow = dataTable1.NewRow();
newRow["ChatID"] = textBoxChatID.Text;
newRow["FMobTel"] = textBoxFMobTel.Text;
newRow["TMobTel"] = textBoxTMobTel.Text;
newRow["CDateTime"] = textBoxCDateTime.Text;
newRow["Message"] = textBoxMessage.Text;
//向表中添加新的行
dataTable1.Rows.Add(newRow);
//更新数据库
MyDMnew2.UpdateData(dataSet1,"Chat");
MessageBox.Show("数据已经添加到表Chat中!","信息");
//重新生成dataGrid
MyDMnew2.SelectData(dataSet1,"Select * from Chat","Chat");
dataGrid1.DataSource = dataSet1.Tables["Chat"].DefaultView;
}
MyDMnew2.UpdateData方法如下(其他部分省略):
public void UpdateData(DataSet DataSet, string TableName)
{
SqlDataAdapter DataAdapter = new SqlDataAdapter();
DataAdapter.Update(DataSet,"TableName");
DataAdapter.Dispose();
}
9 个解决方案
#1
DataAdapter.Update(DataSet,"TableName");把TableName 的双引号去掉就好啦
#2
//I think you should use SqlCommandBuilder like:
public void UpdateData(DataSet DataSet, string TableName)
{
//SqlDataAdapter DataAdapter = new SqlDataAdapter(); I think this sentance will
// be wrote at beginning.
SqlCommandBuilder cmb = new SqlCommandBuilder(DataAdapter);
DataAdapter.Update(DataSet,"TableName");
DataAdapter.Dispose();
}
public void UpdateData(DataSet DataSet, string TableName)
{
//SqlDataAdapter DataAdapter = new SqlDataAdapter(); I think this sentance will
// be wrote at beginning.
SqlCommandBuilder cmb = new SqlCommandBuilder(DataAdapter);
DataAdapter.Update(DataSet,"TableName");
DataAdapter.Dispose();
}
#3
楼上兄弟,按照你说的做了,又报如下错误!
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
#4
rouser(明灭由心) :
你的程序怎么怪怪的呢?
cmb 做什么用的哦?
你的程序怎么怪怪的呢?
cmb 做什么用的哦?
#5
自己顶一下!
#6
to snof(雪狼)
DataAdapter.Update(DataSet,"TableName");把TableName 的双引号去掉就好啦
这样会连编译都通不过的吧^_^0
我刚学C#3天。也在搞数据库。不过我用的是firebird的数据库。用odbcDataAapter连时系统只能生成select与insert语句。delect和update生成不了。是个叉叉。(连mssql的程序全能生成的,老大要用正版的数据库,又不让用MYSQL,说性能差。不完善。所以只能用免费的firebird。)
所以就不能用系统的update简单了事了吧。能不能给点绕过去的方法.我不想自己写sql语句,我sql很差的。而且那样可能要每改一条就写一次。
DataAdapter.Update(DataSet,"TableName");把TableName 的双引号去掉就好啦
这样会连编译都通不过的吧^_^0
我刚学C#3天。也在搞数据库。不过我用的是firebird的数据库。用odbcDataAapter连时系统只能生成select与insert语句。delect和update生成不了。是个叉叉。(连mssql的程序全能生成的,老大要用正版的数据库,又不让用MYSQL,说性能差。不完善。所以只能用免费的firebird。)
所以就不能用系统的update简单了事了吧。能不能给点绕过去的方法.我不想自己写sql语句,我sql很差的。而且那样可能要每改一条就写一次。
#7
DataAdapter.Update(DataSet,"TableName")的双引号确是要去掉的!
但是我的编译是可以通过的,就是执行的时候是不能通过!
能否有解决办法呢!
但是我的编译是可以通过的,就是执行的时候是不能通过!
能否有解决办法呢!
#8
自己顶一下!
#9
怎么没有人理我啊!?
#1
DataAdapter.Update(DataSet,"TableName");把TableName 的双引号去掉就好啦
#2
//I think you should use SqlCommandBuilder like:
public void UpdateData(DataSet DataSet, string TableName)
{
//SqlDataAdapter DataAdapter = new SqlDataAdapter(); I think this sentance will
// be wrote at beginning.
SqlCommandBuilder cmb = new SqlCommandBuilder(DataAdapter);
DataAdapter.Update(DataSet,"TableName");
DataAdapter.Dispose();
}
public void UpdateData(DataSet DataSet, string TableName)
{
//SqlDataAdapter DataAdapter = new SqlDataAdapter(); I think this sentance will
// be wrote at beginning.
SqlCommandBuilder cmb = new SqlCommandBuilder(DataAdapter);
DataAdapter.Update(DataSet,"TableName");
DataAdapter.Dispose();
}
#3
楼上兄弟,按照你说的做了,又报如下错误!
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
#4
rouser(明灭由心) :
你的程序怎么怪怪的呢?
cmb 做什么用的哦?
你的程序怎么怪怪的呢?
cmb 做什么用的哦?
#5
自己顶一下!
#6
to snof(雪狼)
DataAdapter.Update(DataSet,"TableName");把TableName 的双引号去掉就好啦
这样会连编译都通不过的吧^_^0
我刚学C#3天。也在搞数据库。不过我用的是firebird的数据库。用odbcDataAapter连时系统只能生成select与insert语句。delect和update生成不了。是个叉叉。(连mssql的程序全能生成的,老大要用正版的数据库,又不让用MYSQL,说性能差。不完善。所以只能用免费的firebird。)
所以就不能用系统的update简单了事了吧。能不能给点绕过去的方法.我不想自己写sql语句,我sql很差的。而且那样可能要每改一条就写一次。
DataAdapter.Update(DataSet,"TableName");把TableName 的双引号去掉就好啦
这样会连编译都通不过的吧^_^0
我刚学C#3天。也在搞数据库。不过我用的是firebird的数据库。用odbcDataAapter连时系统只能生成select与insert语句。delect和update生成不了。是个叉叉。(连mssql的程序全能生成的,老大要用正版的数据库,又不让用MYSQL,说性能差。不完善。所以只能用免费的firebird。)
所以就不能用系统的update简单了事了吧。能不能给点绕过去的方法.我不想自己写sql语句,我sql很差的。而且那样可能要每改一条就写一次。
#7
DataAdapter.Update(DataSet,"TableName")的双引号确是要去掉的!
但是我的编译是可以通过的,就是执行的时候是不能通过!
能否有解决办法呢!
但是我的编译是可以通过的,就是执行的时候是不能通过!
能否有解决办法呢!
#8
自己顶一下!
#9
怎么没有人理我啊!?