C#编程 必须分次执行的mysql 语句怎么处理,求解答!
我现在在用C#操作数据库,想要执行五条mysql语句,但这些语句只能逐条运行不能同时运行,有没有简便的写法,还是只能每条执行一次mysqlcommand?SET@EE='...
我现在在用C#操作数据库,想要执行五条mysql语句,但这些语句只能逐条运行不能同时运行,有没有简便的写法,还是只能每条执行一次mysqlcommand?
SET @EE='';
SELECT @EE:=CONCAT(@EE,'SUM(IF(chargeitem=\'',chargeitem,'\'',',chargemoney,0)) AS ',chargeitem,',') FROM (SELECT DISTINCT chargeitem FROM tocharge) A;
SET @QQ=CONCAT('SELECT ifnull(OwnerId,\'total\'),OwnerName,',LEFT(@EE,LENGTH(@EE)-1),'SUM(chargemoney) AS 合计 FROM tocharge GROUP BY OwnerId WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2; 展开
SET @EE='';
SELECT @EE:=CONCAT(@EE,'SUM(IF(chargeitem=\'',chargeitem,'\'',',chargemoney,0)) AS ',chargeitem,',') FROM (SELECT DISTINCT chargeitem FROM tocharge) A;
SET @QQ=CONCAT('SELECT ifnull(OwnerId,\'total\'),OwnerName,',LEFT(@EE,LENGTH(@EE)-1),'SUM(chargemoney) AS 合计 FROM tocharge GROUP BY OwnerId WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2; 展开
1个回答
展开全部
可以啊,没问题
使用存储过程来做
或者你直接把你的sql写成语句块的形式就可以了啊
string sql=@“ sql1 sql2 sql 3.....”很多条SQL语句组成语句块,但是里面sql语句执行要控制逻辑哈,必须是上一条语句成功了才可以执行下一条语句哦!!
个你举个简单的例子:
string T_SQLS=
@"
if exits(select * from user where user_name=@usename)
begin
update user set userage=@usenage where user_name=@usename
select @@rowcount//这里你可以返回自定义操作标识
end
else
begin
insert into user values(@usename,@usenage)
select @@rowcount
end
"
SqlConnand com=new SqlConnand (T_SQLS,connection);
com.parm........//添加参数
com ......执行,如果你使用了select 返回操作结果,就不能使用ExcutNoneQuery()方法
使用存储过程来做
或者你直接把你的sql写成语句块的形式就可以了啊
string sql=@“ sql1 sql2 sql 3.....”很多条SQL语句组成语句块,但是里面sql语句执行要控制逻辑哈,必须是上一条语句成功了才可以执行下一条语句哦!!
个你举个简单的例子:
string T_SQLS=
@"
if exits(select * from user where user_name=@usename)
begin
update user set userage=@usenage where user_name=@usename
select @@rowcount//这里你可以返回自定义操作标识
end
else
begin
insert into user values(@usename,@usenage)
select @@rowcount
end
"
SqlConnand com=new SqlConnand (T_SQLS,connection);
com.parm........//添加参数
com ......执行,如果你使用了select 返回操作结果,就不能使用ExcutNoneQuery()方法
更多追问追答
追答
string sqls=@
“
SET @EE='';
SELECT @EE:=CONCAT(@EE,'SUM(IF(chargeitem=\'',chargeitem,'\'',',chargemoney,0)) AS ',chargeitem,',') FROM (SELECT DISTINCT chargeitem FROM tocharge) A;
SET @QQ=CONCAT('SELECT ifnull(OwnerId,\'total\'),OwnerName,',LEFT(@EE,LENGTH(@EE)-1),'SUM(chargemoney) AS 合计 FROM tocharge GROUP BY OwnerId WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2;
”
直接在程序中执行sqls语句就可以了,把参数 @EE, @QQ等在程序里面传入参数就可以了!!
例子不是给你举出来了么?要学会举一反三啊!!注意里面的转义哈,sql语句中是不允许有双引号的的!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询