我想做一个SQL查询分析器,现在难点如下:假设我要执行如下命令:use testgoselect * from tab1delete tab2 我需要的信息是select出来的表,还有影响行,还有delete的影响行,不要让我用什么间隔符把命令隔开(因为我要做的就是和SQL查询分析器一样的功能)。我已经在SQLDMO找到SQLDMOServer对象的一个方法ExecuteWithResultsAndMessages(命令文本,命令长度,out 输出消息).这个方法能执行SQL的代码,但是他返回的是一个SQLDMO.QueryResults对象,里面找不到数据,而且那个输出消息的变量也在执行后为null,没有变化。现在急需高手指导一下,我的要求:能执行一段任意的SQL代码,而且能返回数据集和返回消息
解决方案 »
- TreeView
- DataGridView 行单元格回车事件
- 请问各位用.NET的哪个版本? 哪里有vs2005下载? 谢谢!
- 用c#编程怎么能获得本机的cpu和内存使用情况?
- radiobutton在c#中有text属性,但在javascript调用时没有text属性,怎么办?
- 应用程序从数据库读出数据,怎么放入listitem中,方便查询
- 如何动态的根据登陆用户的权限来显示树形目录
- DataGrid如何选中一个记录后,返回到相应的文本框中?(WinForm)
- 学会C#编程要学那些东西,或哪几本书?
- 有没有人知道,如何用C#处理2进制字符串
- GMDatePicker中的Date為空值
- 求51aspx类似的,好一些的c/s源码下载的网站~
我想,你可以接受上面这样的输入,在得到输入后,试着用 Regex 把 go 以及其他语句行末的换行符替换为分号,再交给 sqlcmd 执行,不知可否?
可能你没试过其实 use 这个命令也是不能在sqlcmd中执行的,所以我觉得用Regex替换的话不是很好,如果在一个服务器下用户就是要用use换数据库操作那不是就没用了吗
影响10行(这里是假设)影响3行
-----
use test go select * from tab1 delete tab2 你 use ,就需要更换连接了。
然后,如果你要实现诸如 SQL查询分析器。可是你想过语法检查没有?
与其这样,为什么不轻松点?让用户输入:----
select * from tab1;
select * from tab2;
select * from tab3;
delete tab2;
delete tab3;
----然后你又要判断这是什么语法?(返回表?单值?NonQuery?)
一般来讲。只要将 splict 分号,然后检查第一个单词……switch 一下。变通下,你想完全模仿是很难的(至少对我来说,好难)。拙见。希望可以给你帮助。