当前位置:  编程技术>.net/c#/asp.net

C#代码验证sql语句是否正确(只验证不执行sql)的方法

    来源: 互联网  发布时间:2014-08-30

    本文导语:  需要用到如下的知识: SET PARSEONLY 检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。 SET PARSEONLY { ON | OFF } 当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语...

需要用到如下的知识:
SET PARSEONLY
检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。
SET PARSEONLY { ON | OFF }
当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句。
SET PARSEONLY 的设置是在分析时设置,而不是在执行或运行时设置。
在存储过程或触发器中不要使用 PARSEONLY。如果 OFFSETS 选项为 ON 而且没有出现错误,则 SET PARSEONLY 返回偏移量。
SET NOEXEC (Transact-SQL)
编译每个查询但不执行查询。
SET NOEXEC { ON | OFF }
当 SET NOEXEC 为 ON 时,SQL Server 将编译每一批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 设置为 OFF 时,所有批处理将在编译后执行。
SQL Server 中的语句执行包含两个阶段:编译和执行。
该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。
也可以用于调试通常是较大的批处理中的部分语句。

SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。
SET PARSEONLY的代码如下:

public bool ValidateSQL(string sql) 
{ 
bool bResult; 

SqlCommand cmd = _conn.CreateCommand(); 
cmd.CommandText = "SET PARSEONLY ON"; 
cmd.ExecuteNonQuery(); 
try 
{ 
cmd.CommandText = sql; 
cmd.ExecuteNonQuery(); 
bResult = true; 
} 
catch (Exception ex) 
{ 
bResult = false; 
} 
finally 
{ 
cmd.CommandText = "SET PARSEONLY OFF"; 
cmd.ExecuteNonQuery(); 
} 

return bResult; 
}

有兴趣的朋友,可以亲自测试下,看看效果如何?!
可以把以上代码写成类中的方法,以后每次执行时都提前验证下,是不是很酷哦。


    
 
 

您可能感兴趣的文章:

  • JSP单选按钮验证、下拉框验证、复选框验证实现代码
  • jquery表单验证框架提供的身份证验证方法(示例代码)
  • jQuery.ajax 用户登录验证的代码
  • 求 : RSA 签名 验证 以及加密解密 源代码 急用!!! 求救!!
  • php验证是否是md5编码的简单代码
  • jquery正则验证代码(电话号码、传真、网址)
  • 谁有TFTP源代码,而且要求有安全验证的功能
  • 一段C#生成随机验证码的代码
  • 在javascript中(如onclick事件中)可以插入用JSP编写的验证权限的代码吗?那该怎样插入呢?
  • ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
  • jquery 手机发送验证码倒计时实现代码
  • Jquery正则表达式验证电子邮件的代码示例
  • jquery实现手机发送验证码的倒计时代码
  • Jquery验证用户名与密码的实例代码
  • Jquery验证Email格式是否合法的代码举例
  • EXTJS自定义表单验证的实例代码
  • Jquery正则验证身份证号码与Email邮箱的代码
  • c# 验证本机excel版本的代码
  • Js 小数验证函数代码(基于正则)
  • jQuery异步验证用户名是否存在示例代码
  • NET c#索引器(indexer)介绍及代码示例
  • 使用 C# 动态编译代码和执行的代码
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • .net/c#/asp.net iis7站长之家
  • .NET下 c#通过COM组件操作并导出Excel实例代码
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#清空添加的txt文件的实例代码
  • C# Winform 整个窗口拖动的实现代码
  • c# Winform 全窗口拖动的代码
  • C#判断数据类型的简单示例代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在SQL Server的try...catch语句中获取错误消息代码的的语句
  • c语言中if 语句的作用范围示例代码
  • 请问在 Linux 下如何用代码实现连接oracle数据库 并 执行 SQL 语句?
  • php switch语句多个值匹配同一代码块应用示例
  • php switch语句多个值匹配同一代码块的实现
  • expect中为send语句上加变量的代码
  • MySQL与MSSQl使用While语句循环生成测试数据的代码
  • SQL Server中选出指定范围行的SQL语句代码
  • 请教高人:下面一段代码中的__ret_gu语句做何用途,还有switch语句的default分支:__get_user_x()中的第一个参数“X”好像未声明,如何编
  • 经典sql代码--解决并清除SQL被注入恶意代码的语句
  • windows下写的源代码,其中有打印中文语句,移到linux编译后运行中文显示乱码了
  • 解析:清除SQL被注入恶意病毒代码的语句
  • 下面是mysql5.0源代码中嵌入的一条汇编语句,哪位老大能给解释一下?
  • 使用sql语句创建和删除约束示例代码
  • 在sql server查询语句中增加序号字段的实例代码
  • sql语句实例 取得超长Ip块的代码
  • 如何不把SQL语句直接写在JAVA程序代码里
  • 谁能把asp的for语句(付代码)写成jsp的?
  • PHP mysqli 增强 批量执行sql 语句的实现代码
  • 由try-catch-finally语句捕获异常时,是否finally所指定的代码都要被执行?即使try语句所指定的不产生异常?
  • javascript 添加到收藏夹和书签代码示例
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 为什么两行代码间不加入其他代码就崩溃,而加入了日志代码后就不崩溃?
  • JSP中清空cookie代码参考
  • 在ubuntu8.10 新立得中安装anjuta,为什么没有代码提示功能,怎么做才有,还有自动代码补全和代码提示有什么区别,
  • Python获取网页编码的方法及示例代码
  • 到底怎么样的代码算是有效代码?请教了。。
  • HTML网页中的html body onload自动跳转方法介绍及自动跳转代码示例
  • 如果要研究源代码以提高自己,哪一个开放源代码的软件比较合适?
  • php通过socket_bind()设置IP地址代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3