news 2026/6/11 9:23:42

[C#]C#中验证sql语句是否正确(不执行语句)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[C#]C#中验证sql语句是否正确(不执行语句)

SET PARSEONLY 与 SET NOEXEC 功能对比

SET PARSEONLY

  • 仅检查语法错误,不编译或执行语句。
  • 适用于快速验证 SQL 语句的语法正确性。
  • 设置时机在分析阶段,非运行时。
  • 避免在存储过程或触发器中使用。

SET NOEXEC

  • 编译语句但不执行,验证语法和对象名。
  • 适用于调试大型批处理代码。
  • 设置时机在运行时。

SQL 语法验证方法实现

/// <summary> /// 仅检查 SQL 语法,不执行语句。 /// </summary> /// <param name="sql">待验证的 SQL 语句</param> /// <param name="connectionString">数据库连接字符串</param> /// <returns>语法是否有效</returns> public static bool ValidateSQL(string sql, string connectionString) { bool isValid; using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand()) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = "SET PARSEONLY ON"; cmd.ExecuteNonQuery(); try { cmd.CommandText = sql; cmd.ExecuteNonQuery(); isValid = true; } catch { isValid = false; } finally { cmd.CommandText = "SET PARSEONLY OFF"; cmd.ExecuteNonQuery(); } } } return isValid; }

关键注意事项

  • 连接管理:确保使用using语句自动释放资源。
  • 错误处理:捕获异常以判断语法有效性,但无需处理具体错误。
  • 重置设置:在finally块中恢复PARSEONLYOFF,避免影响后续操作。

适用场景

  • 开发阶段快速验证动态生成的 SQL 语句。
  • 自动化测试中检查脚本语法。
  • 避免直接执行高风险语句(如未经验证的用户输入)。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 9:23:12

[①ADRV902x]: 从SPI配置到HAL接口:API函数详解与平台适配

1. ADRV902x SPI接口基础与硬件连接 ADRV902x作为ADI公司的高性能射频收发器&#xff0c;其SPI接口是与主控芯片通信的核心通道。第一次接触这个芯片时&#xff0c;我花了整整两天时间才搞明白硬件连接的正确姿势。SPI总线看似简单&#xff0c;但实际布线时有很多坑需要注意。 …

作者头像 李华
网站建设 2026/6/11 9:23:11

Citra模拟器故障排除与优化指南:解决黑屏和性能问题的专业方法

Citra模拟器故障排除与优化指南&#xff1a;解决黑屏和性能问题的专业方法 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra Citra是一款广受欢迎的开源任天堂3DS模拟器&#xff0c;让玩家能够在PC上体验经典的…

作者头像 李华
网站建设 2026/6/11 9:23:07

Spring Boot项目里用Netty手搓一个MQTT客户端,我踩过的那些坑

Spring Boot项目里用Netty手搓一个MQTT客户端&#xff0c;我踩过的那些坑MQTT协议凭借其轻量级、低功耗和高效的消息传输特性&#xff0c;在物联网领域占据着重要地位。而在Java生态中&#xff0c;Spring Boot和Netty的组合为构建高性能MQTT客户端提供了绝佳的技术栈。本文将分…

作者头像 李华
网站建设 2026/6/11 9:23:02

第十三:Python接口自动化-cookie绕过验证码登录

一.简介 1.有些登录的接口会有验证码,短信验证码,图形验证码等 1.1.这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)2.获取不到也没关系,可以通过添加cookie的方式绕过验证码 2.2.注意:并不是所有的登录都是用cookie来保持登录的,有些是用token登录二.抓登…

作者头像 李华