在c#中如如果要使用多条SQL语句,有没有什么好的方法呢。我都是用STRING.FORMAT()。然后ExecuteNonQuery()。
单条的话还好,多条的发好像很麻烦呢,不知道各位高手有没有什么好方法呢。
单条的话还好,多条的发好像很麻烦呢,不知道各位高手有没有什么好方法呢。
解决方案 »
- 如何用DevExpress制作MenuStrip下拉菜单栏
- 如何实现群发邮件时不会被封掉C#
- 关于海天人系统的页面跳转问题(看似简单.)研究过海天人系统的进!
- xml文件能不能保存到sql中???
- 求CVS的相关东东
- 哪有介绍企业(制造业)ERP业务流程的文档?
- C# 实时显示界面
- 我想用C#写游戏的辅助程序,请问
- datagridview使用自定义快捷菜单,目前按右键会弹出操作系统自带的快捷菜单,如何关闭
- 高分请教:如何JAVASCRIPT的函数检测该页面有某个控件,比如说Btn_Print(打印)(100分,不够再加)
- 在远程机器上使用模拟鼠标点击无效
- 如何获得和设置笔记本的背光、关闭显示器时间和进去睡眠状态的时间。
遍历数组元素,对每条语句执行ExecuteNonQuery()。
类似
void data(string sql)
{
}
sqltransaction或者存储过程来执行事务.
这里有多条sql执行的方法。写存储过程也行。不过存储过程自己写
c#使用存储过程
/// <summary>
/// 带事务的批量操作数据。
/// </summary>
/// <param name="sqlInsert">SQL</param>
/// <returns>操作是否成功</returns>
public static bool OperateDatasWithTransaction(List<string> sqlList)
{
OracleConnection myConnection = new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStrOrcl"]);
myConnection.Open();
OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;
// Start a local transaction
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;
try
{
foreach (string item in sqlList)
{
myCommand.CommandText = item;
myCommand.ExecuteNonQuery();
}
myTrans.Commit();
return true;
}
catch (Exception)
{
myTrans.Rollback();
return false;
}
finally
{
myConnection.Close();
}
}
#endregion
string sql2="select * from mytab2";dataAcc.ExecuteNonQuery(sql1+";"+sql2+";");这样既可.在MS SQL里面很好用.(如果是DB2数据库的话就不行)
或者直接用 “;” 分隔多个语句,写在一句SQL里