请问几条SQL语句中间用什么连接?

idoloveyou 2003-10-16 01:37:00
我想调用一次OleDbCommand.ExecuteNonQuery执行多条SQL语句
...全文
183 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
idoloveyou 2003-10-19
  • 打赏
  • 举报
回复
可是明明ExecuteNonQuery可以执行多条语句的呀!
idoloveyou 2003-10-17
  • 打赏
  • 举报
回复
UPDATE [Configure] SET [Value] = 'Black' WHERE [Name] = 'BorderColor';UPDATE [Configure] SET [Value] = 'Red' WHERE [Name] = 'BackgroundColor';UPDATE [Configure] SET [Value] = '2' WHERE [Name] = 'Border';UPDATE [Configure] SET [Value] = '宋体' WHERE [Name] = 'Font';

就是这样啦
webdiyer 2003-10-17
  • 打赏
  • 举报
回复
怎么连接的?全部帖出来啊!
idoloveyou 2003-10-17
  • 打赏
  • 举报
回复
UPDATE [Configure] SET [Value] = 'Red' WHERE [Name] = 'BackgroundColor';
4句这样的话,只不过[Name]的值不同
yaotiebing 2003-10-17
  • 打赏
  • 举报
回复
我明白你的意思了 你是选择在删除 最好用一个事物实现
webdiyer 2003-10-17
  • 打赏
  • 举报
回复
UPDATE [Configure] SET [Value] = 'Black' WHERE [Name] = 'BorderColor';UPDATE [Configure] SET [Value] = 'Red' WHERE [Name] = 'BackgroundColor';UPDATE [Configure] SET [Value] = '2' WHERE [Name] = 'Border';UPDATE [Configure] SET [Value] = '宋体' WHERE [Name] = 'Font';

===============>

去掉最后那个“;”号试试。
tohen 2003-10-17
  • 打赏
  • 举报
回复
還是寫個存儲過程吧
這樣會減少很多錯誤
bobjeey 2003-10-17
  • 打赏
  • 举报
回复
string sqltext = "select * from table1;";
sqltext += "delete from table1 where column1 ='000'";

....
SqlConnection conn = new SqlConnection("connectstring....");

conn.open();
try{
SqlCommand cmd = new SqlCommand(sqltext,conn);
cmd.ExecuteNoneQuery();
}
catch(exception ex)
{
throw new Exception(ex.message + sqltext);
}
finally{
conn.close();
}


观察错误原因和你的sql语句,检查错误地方。
webdiyer 2003-10-16
  • 打赏
  • 举报
回复
帖了你的sql语句来看看。
idoloveyou 2003-10-16
  • 打赏
  • 举报
回复
我就是这样做的呀,可是报错:

在 SQL 语句结尾之后找到字符。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 在 SQL 语句结尾之后找到字符。

源错误:


行 89: OleDbCommand odcmd = new OleDbCommand(strSQL, odconn);
行 90: odconn.Open();
行 91: odcmd.ExecuteNonQuery();
行 92: odconn.Close();
行 93: }
bobjeey 2003-10-16
  • 打赏
  • 举报
回复
string sqltext = "select * from table1;";
sqltext += "delete from table1 where column1 ='000'";

....
SqlConnection conn = new SqlConnection("connectstring....");

conn.open();
SqlCommand cmd = new SqlCommand(sqltext,conn);
cmd.ExecuteNoneQuery();

...
conn.close();
idoloveyou 2003-10-16
  • 打赏
  • 举报
回复
没有存储过程
但是加分号以后就出现上面的错误
dreammaster 2003-10-16
  • 打赏
  • 举报
回复
把go之类的语句去掉,如果还包含存储过程就不好作了,因为你可以在过程的每个语句未加分号,这样在执行时难以区分。

我的建议是,无存储过程的语句放在一起运行,中间用分号隔开。

有存储过程的可以用一个特别号分开,然后用String的Split方法分开去执行.
idoloveyou 2003-10-16
  • 打赏
  • 举报
回复
不行呀!报错:


在 SQL 语句结尾之后找到字符。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 在 SQL 语句结尾之后找到字符。

源错误:


行 89: OleDbCommand odcmd = new OleDbCommand(strSQL, odconn);
行 90: odconn.Open();
行 91: odcmd.ExecuteNonQuery();
行 92: odconn.Close();
行 93: }

duanxl 2003-10-16
  • 打赏
  • 举报
回复
分号隔开?没用过,我还以为是用go隔开呢
cuike519 2003-10-16
  • 打赏
  • 举报
回复
或者写个存储过程!不过还是要用;分开!
stoway 2003-10-16
  • 打赏
  • 举报
回复
同意楼上
webdiyer 2003-10-16
  • 打赏
  • 举报
回复
把多条Sql语句放在OleDbCommand的CommandText中,每一条语句中间用分号隔开。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧