如何用ExecuteNonQuery执行多条SQL语句?

hcaihao 2006-12-27 09:21:41
create table NanJing
(
线路 nvarchar(50) primary key not null,
始发站 nvarchar(50),
终点站 nvarchar(50),
服务时间 nvarchar(50),
说明字段 nvarchar(50),
途径站点 ntext not null
)
go
insert into NanJing VALUES('*109','','','','','滨江公园 扬子江大道 梦都大街西 松花江西街 华山路 燕山路 香山路 兴隆大街 云锦路 白鹭东街 怡康街西 应天大街西 黄山路 泰山路 南苑新村 文体路 南湖东路 长虹路 莫愁湖东路 莫愁湖东路北站 汉中门 (牌楼巷) 莫愁路 五台山 随家仓 (拉萨路) 广州路 五台山体育中心');


SQL中有如上两条语句,如何在C#中用ExecuteNonQuery()一次执行完毕?
...全文
1269 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋叶园 2007-01-01
  • 打赏
  • 举报
回复
最好用GO 作分隔,小处理一下就行
于娜 2007-01-01
  • 打赏
  • 举报
回复
“;” 好隔开
windykuang 2007-01-01
  • 打赏
  • 举报
回复
直接用就可以了,可以执行多条的。
也可写到存储过程里!!
winner2050 2007-01-01
  • 打赏
  • 举报
回复
直接输入多个sql就得。

ADO.net自己帮你分开的。
hcaihao 2007-01-01
  • 打赏
  • 举报
回复
呵呵,不是,我在做毕业设计,马上要去浪潮工作了,谢谢各位^^
我用split把语句分了,一条一条执行,但是有个小问题在http://community.csdn.net/Expert/topic/5269/5269917.xml?temp=.5153009,希望各位能帮忙看看
hcaihao 2006-12-28
  • 打赏
  • 举报
回复
Up
北京的雾霾天 2006-12-28
  • 打赏
  • 举报
回复
可以这样执行,但有个go的问题:
1:可以把go去掉,把两个命令作为一个批命令执行,可以成功.
2:利用go把语句分开,一个go为一批命令.分别用Command执行.

我已测试过把go去掉后的语句执行成功.

注: go在SqlCommand中不可识别,因为这是Sql的执行批命令的语句.
sdl2005lyx 2006-12-28
  • 打赏
  • 举报
回复
lz:
vicon(排骨面(说过多少次了!要团结,眼睛要看着别人的长处!)) 说的办法可以解决你的问题。
heartdevil 2006-12-28
  • 打赏
  • 举报
回复
不要GO就可以了.加GO在执行的时候会报'语法错误'的提示。
C#是可以一次执行多条SQL语句的。
czjearth 2006-12-28
  • 打赏
  • 举报
回复
vicon(排骨面(说过多少次了!要团结,眼睛要看着别人的长处!))
的方法好像是可以的,

不过语句中间好像要加 ";",

另外所有语句写到 存储过程 中.


csrwgs 2006-12-28
  • 打赏
  • 举报
回复
?
直接使就是了

怎么给南京公交网做??


呵呵,可能是员工吧
  • 打赏
  • 举报
回复
直接使就是了

怎么给南京公交网做??
uglykoala 2006-12-28
  • 打赏
  • 举报
回复
用存储过程。sql2000是可以批处理的。。。。。。。
wqm_44944 2006-12-28
  • 打赏
  • 举报
回复
string strSql = "select top 5 productId,productName from products order by productId;" +"select top 3 customerId,companyName from customers order by customerId;";
SqlCommand cmd = new SqlCommand(strSql,con);
SqlDataReader sdr = cmd.ExecuteReader();
这个命令 返回两个结果集,调用Read()方法读取可读的行,返回false到达结果集末尾,调用
NextResult()方法,再读取下一个结果集
do
{
while(sdr.read())
{
console.writeLine(sdr[0]);
}
}while(sdr.NextResult());
vicon 2006-12-27
  • 打赏
  • 举报
回复
不好意思,我看错了,上面的语句我没有试过。
vicon 2006-12-27
  • 打赏
  • 举报
回复
不用做什么操作,直接使用
string SqlString =
" insert into NanJing VALUES('*109', 莫愁路) " +
" insert into NanJing VALUES('*109', 莫愁路) " ;
db.ExecuteNonQuery(SqlString);
可以一次执行多条语句,只不过只能返回最后一个查询所影响的行数。


ice_frank 2006-12-27
  • 打赏
  • 举报
回复
为何不用存储过程
重典 2006-12-27
  • 打赏
  • 举报
回复
小弟新我,依我所学,吸能2句或存储过程

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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