一个事务里不能同时用SqlCommand的ExecuteNonQuery和SqlDataAdapter的Update这两种方法更新数据库? 我试了一下,报错,分开执行没问题。看来只能是事务里用SqlCommand的ExecuteNonQuery更新数据库,在SqlDataAdapter执行Update时捕捉异常,如有异常事务回卷。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我没试过,我习惯于用SqlCommand的ExecuteNonQuery操作数据库 没有这种限制。只要是在同一个Connection对象上 1楼:有时还是用SqlDataAdapter的Update方法更新数据库方便。2楼:不行,报错:当分配给命令的连接处于挂起的本地事务中时,命令必须具有本地事务对象才能执行。该命令的Transaction属性尚未初始化。代码如下:SqlConnection myConnection = new SqlConnection(DataBaseOperation.strSqlConDataBaseOperation);myConnection.Open();SqlCommand myCommand = myConnection.CreateCommand();SqlTransaction myTrans;myTrans = myConnection.BeginTransaction();myCommand.Connection = myConnection;myCommand.Transaction = myTrans;try{myCommand.CommandText = "Insert Into ProPlaDocuments_main([customer],[date],[state]) Values('" + this.textCustomer.Text + "','" + dtpDate.Value + "','未出库')";myCommand.ExecuteNonQuery();SqlDataAdapter sqldataadapter = new SqlDataAdapter("Select * From ProPlaDocuments_details",myConnection);new SqlCommandBuilder(sqldataadapter);sqldataadapter.Update(this.dTableProPlaDocuments_details);myTrans.Commit();}catch... Adapter的update实际上就是调用其所属的UpdateCommand 谢谢楼上,能说一下具体怎么写吗?我写了如下代码,还不行,报错“未将对象引用设置到对象实例”SqlConnection myConnection = new SqlConnection(DataBaseOperation.strSqlConDataBaseOperation);myConnection.Open();SqlCommand myCommand = myConnection.CreateCommand();SqlTransaction myTrans;myTrans = myConnection.BeginTransaction();myCommand.Connection = myConnection;myCommand.Transaction = myTrans;try{myCommand.CommandText = "Insert Into ProPlaDocuments_main([customer],[date],[state]) Values('" + this.textCustomer.Text + "','" + dtpDate.Value + "','未出库')";myCommand.ExecuteNonQuery();SqlDataAdapter sqldataadapter = new SqlDataAdapter("Select * From ProPlaDocuments_details",myConnection);new SqlCommandBuilder(sqldataadapter);sqldataadapter.SelectCommand.Transaction = myTrans;sqldataadapter.InsertCommand.Transaction = myTrans;sqldataadapter.UpdateCommand.Transaction = myTrans;sqldataadapter.DeleteCommand.Transaction = myTrans;sqldataadapter.Update(dTableProPlaDocuments_details);myTrans.Commit();}catch... 有答案了:http://community.csdn.net/Expert/topic/4957/4957796.xml?temp=.5720026 DataGridView中,用鼠标代替滚动条的问题 installshield2010 如何添加.net4.0 读取txt文件 DropDownButton的下拉菜单出现的一个BUG C# 读串口数据问题 水晶报表的边框怎样自动扩大? C# winform下的几大难题?高分求救! 需求问题,急,请大神帮助小女子 如何在C#中取得主板的序列号? 关于Crystal Report动态报表生成的问题,已在五个坛子设贴,总计300分,不足可再加! 无法在web服务器上启动调试 无法找到端口 大家有好的DataGrid嵌入ComboBox列的类吗?
myConnection.Open();SqlCommand myCommand = myConnection.CreateCommand();
SqlTransaction myTrans;myTrans = myConnection.BeginTransaction();
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;try
{
myCommand.CommandText = "Insert Into ProPlaDocuments_main([customer],[date],[state]) Values('" + this.textCustomer.Text + "','" + dtpDate.Value + "','未出库')";
myCommand.ExecuteNonQuery();
SqlDataAdapter sqldataadapter = new SqlDataAdapter("Select * From ProPlaDocuments_details",myConnection);
new SqlCommandBuilder(sqldataadapter);
sqldataadapter.Update(this.dTableProPlaDocuments_details);
myTrans.Commit();
}
catch...
myConnection.Open();SqlCommand myCommand = myConnection.CreateCommand();
SqlTransaction myTrans;myTrans = myConnection.BeginTransaction();
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;try
{
myCommand.CommandText = "Insert Into ProPlaDocuments_main([customer],[date],[state]) Values('" + this.textCustomer.Text + "','" + dtpDate.Value + "','未出库')";
myCommand.ExecuteNonQuery();
SqlDataAdapter sqldataadapter = new SqlDataAdapter("Select * From ProPlaDocuments_details",myConnection);
new SqlCommandBuilder(sqldataadapter);
sqldataadapter.SelectCommand.Transaction = myTrans;
sqldataadapter.InsertCommand.Transaction = myTrans;
sqldataadapter.UpdateCommand.Transaction = myTrans;
sqldataadapter.DeleteCommand.Transaction = myTrans;
sqldataadapter.Update(dTableProPlaDocuments_details);
myTrans.Commit();
}
catch...