在ADO中用BatchUpdate模式,怎样更新两个以上的数据表我在程序中用ADOQuery来查询两个以上的数据表,
如我查询用了ADOQuery1.sql.add('select * from a,b where a.field=b.field);之后更改了某些字段,现在要更新回各自的数据表,怎么做呢?
如我查询用了ADOQuery1.sql.add('select * from a,b where a.field=b.field);之后更改了某些字段,现在要更新回各自的数据表,怎么做呢?
解决方案 »
- 关于窗口中控件坐标和控件句柄的问题
- 树结点拖动 有个地方看不明白.
- 窗体上的label, button上的caption文字显示‘???’
- 关于fileopen等函数的问题。在线等
- Delphi版 用户使用指南,希望大家支持!
- 请问各位高手,如何把一个文件夹压缩,并将其作为附件通过email发送出去。谢谢!
- ole 不能在多线程里面???
- 请教各位高手,有没有高效的方法可以在查询的结果中进行二次查询?
- datasetprovider and clientdataset
- 请问有谁知道DELPHI 6 中文版里的帮助手册(中文)那里有下载啊?
- 怎么作一个实时显示摄像头拍摄内容的程序,而且最好是不考虑摄像头差异的,通用的
- 有没有象vb或pb中的choose函数呢?
/// 批量跟新
/// </summary>
/// <param name="dt">要更新的数据</param>
/// <param name="errMsg">错误信息</param>
/// <returns></returns>
public bool BatchUpdate(DataTable dt, ref string errMsg)
{
bool flag = true;
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand command = new SqlCommand
{
Connection = this.sqlConn,
CommandText = " select * from " + dt.TableName
};
adapter.SelectCommand = command;
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
if ((dt != null) && (dt.Rows.Count > 0))
{
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.UpdateCommand = builder.GetUpdateCommand();
try
{
adapter.Update(dt);
}
catch (Exception exception)
{
this.RollbackTrans();
flag = false;
errMsg = exception.Message + exception.StackTrace;
}
command.Dispose();
builder.Dispose();
adapter.Dispose();
}
return flag;
}