各位帮我看看 我是想用trans来更新datagrid修改的数据 碰到这个问题
代码
private void button2_Click(object sender, System.EventArgs e)
{
this.BindingContext[this.taskDataSet].EndCurrentEdit();
UpdateTaskWithTransaction((DataSet) taskDataSet);
taskDataSet.AcceptChanges();
}
public void UpdateTaskWithTransaction(DataSet taskDataSet)
{
SqlConnection _conn=new SqlConnection(CommunionSearchConfiguration.ConnectionString);
SqlTransaction trans=null;
SqlDataAdapter taskDataAdapter=new SqlDataAdapter(COMMANDTEXT,_conn);
taskDataAdapter.SelectCommand=new SqlCommand(COMMANDTEXT,_conn);
SqlCommandBuilder taskCommandBuilder=new SqlCommandBuilder(taskDataAdapter);
taskDataAdapter.InsertCommand=taskCommandBuilder.GetInsertCommand();
taskDataAdapter.DeleteCommand=taskCommandBuilder.GetDeleteCommand();
taskDataAdapter.UpdateCommand=taskCommandBuilder.GetUpdateCommand();
try
{
_conn.Open();
trans=_conn.BeginTransaction();
taskDataAdapter.InsertCommand.Transaction=trans;
taskDataAdapter.DeleteCommand.Transaction=trans;
taskDataAdapter.UpdateCommand.Transaction=trans;
//taskDataAdapter.Update(taskDataSet.Tables[TASK_TABLE].Select("","",DataViewRowState.Added));
taskDataAdapter.Update(taskDataSet.Tables[TASK_TABLE].Select("","",DataViewRowState.ModifiedCurrent));
//taskDataAdapter.Update(taskDataSet.Tables[TASK_TABLE].Select("","",DataViewRowState.Deleted));
trans.Commit();
}
catch(Exception ex)
{
trans.Rollback();
throw new Exception("更新数据出错",ex);
}
finally
{
if(_conn.State != ConnectionState.Closed)
_conn.Close();
}
}
taskDataAdapter.InsertCommand=taskCommandBuilder.GetInsertCommand();这里出错"未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。
其他信息: 系统错误。"
请问下 有经验的人什么原因
代码
private void button2_Click(object sender, System.EventArgs e)
{
this.BindingContext[this.taskDataSet].EndCurrentEdit();
UpdateTaskWithTransaction((DataSet) taskDataSet);
taskDataSet.AcceptChanges();
}
public void UpdateTaskWithTransaction(DataSet taskDataSet)
{
SqlConnection _conn=new SqlConnection(CommunionSearchConfiguration.ConnectionString);
SqlTransaction trans=null;
SqlDataAdapter taskDataAdapter=new SqlDataAdapter(COMMANDTEXT,_conn);
taskDataAdapter.SelectCommand=new SqlCommand(COMMANDTEXT,_conn);
SqlCommandBuilder taskCommandBuilder=new SqlCommandBuilder(taskDataAdapter);
taskDataAdapter.InsertCommand=taskCommandBuilder.GetInsertCommand();
taskDataAdapter.DeleteCommand=taskCommandBuilder.GetDeleteCommand();
taskDataAdapter.UpdateCommand=taskCommandBuilder.GetUpdateCommand();
try
{
_conn.Open();
trans=_conn.BeginTransaction();
taskDataAdapter.InsertCommand.Transaction=trans;
taskDataAdapter.DeleteCommand.Transaction=trans;
taskDataAdapter.UpdateCommand.Transaction=trans;
//taskDataAdapter.Update(taskDataSet.Tables[TASK_TABLE].Select("","",DataViewRowState.Added));
taskDataAdapter.Update(taskDataSet.Tables[TASK_TABLE].Select("","",DataViewRowState.ModifiedCurrent));
//taskDataAdapter.Update(taskDataSet.Tables[TASK_TABLE].Select("","",DataViewRowState.Deleted));
trans.Commit();
}
catch(Exception ex)
{
trans.Rollback();
throw new Exception("更新数据出错",ex);
}
finally
{
if(_conn.State != ConnectionState.Closed)
_conn.Close();
}
}
taskDataAdapter.InsertCommand=taskCommandBuilder.GetInsertCommand();这里出错"未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。
其他信息: 系统错误。"
请问下 有经验的人什么原因
解决方案 »
- 菜鸟求助【关于socket的问题】
- 在ASP.NET中怎样进行文件的批量上传
- repeater嵌套了panel 如何取到panel的id并且将Visible的属性设置为false
- 2009 第一问
- 用System.Data.DataSet.ReadXml()方法读取XML文档问题????
- 请教为什么string.fromat("{0:c}",...)输出的符号是:$,而有的程序里输出:¥
- 急!表单中动态生成控件的问题,请高手解决,高分送上!
- 在datagrid中添加按钮后的显示问题
- 刚进入工作岗位帮帮忙把 DataGrid问题
- 菜鸟问题,请问怎么让 点主from上的一个按钮就弹出另一个编好的窗体
- datagrid的问题
- 问题
public void UpdateContactTableByDataSet(DataSet ds,string strTblName)
{
try
{
SqlDataAdapter myAdapter = new SqlDataAdapter();
SqlConnection conn = new SqlConnection(strConnection);
SqlCommand myCommand = new SqlCommand(SQL_GetAllRecordFromDemand(strTblName),conn);
myAdapter.SelectCommand = myCommand;
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
conn.Open();
SqlTransaction myTrans = conn.BeginTransaction();
myCommand.Transaction = myTrans;
try
{
myAdapter.Update(ds,strTblName);
myTrans.Commit();
}
catch(Exception e)
{
try
{
myTrans.Rollback();
}
catch (SqlException ex)
{
if (myTrans.Connection != null)
{
Console.WriteLine("回滚失败! 异常类型: " + ex.GetType());
}
}
}
finally
{
conn.Close();
}
}
catch(Exception ex)
{
throw ex;
}
}
to ChengKing(bantamweight) 谢谢了 例子和我的不符合