<经典> 开发==>模拟查询分析器
模拟查询分析器(C#+MS-SQL)
在winfrom里,我在一个文本框里输入SQL语句(可以有多行语句,如:select getdate() print 'OK ' exec sqlctrs_users 'dt_whocheckout_u '),点一下运行SQL脚本,就会在另一个文本框或是DATAGIRDVIEW里出现执行出来的结果 ,而且能检查语法错误
我用的存储过程是这个
CREATE PROCEDURE ProOut
@InCode nvarchar(4000)
AS
DECLARE @num int
EXEC sp_executesql @InCode,N '@a nvarchar(4000) output ',@num output
我现在用DATAGRIDVIEW接收返回的数据,好像不能接多条SQL语句的返回值
我返回的结果不能全部显示出来,不能检查错误
QQ88981904 xiebinren1013@163.com
感谢各位提出宝贵的建议!希望 慕白兄 能光顾到这
------解决方案--------------------顺路坐头铺
------解决方案--------------------找一找SQLServer的插件
------解决方案--------------------脚本一般用;分号作一句结束
所以,你用;作为分隔符,把它分隔到数组里,循环执行就OK了
另一个就是模拟查询分析器,执行鼠标高亮选择的那一段
检查,其实就是开始一个事务,然后执行脚本,最后事务回滚
如果出错,就是检查不通过了
------解决方案--------------------楼上的
---------------------
检查,其实就是开始一个事务,然后执行脚本,最后事务回滚
如果出错,就是检查不通过了
---------------------
比较粗糙的模拟可以,如果执行脚本需的时间比较长,岂不是检查的时间相应比较长。
------解决方案--------------------直接把字符串内容用ExcuteReader 来执行不行么? 干吗要弄个存储过程?
ExcuteReader 也可以执行Update啊Insert啊的,就是不返回结果而已.
建个事务,Try-Catch一下就判断出语法问题了,直接把错误信息输出给用户看, 这就模拟起来了,多方便,何苦搞那么多事....
而且Reader可以有多个结果集,如果你的语句写了2个Select还可以绑出2个DATAGIRDVIEW...
以上方式绝对可行,因为我已经试过了.... ^_^