`
wyf
  • 浏览: 436583 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

C#校验sql是否合法,不去执行sql语句

 
阅读更多
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;  
    }

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 ON

SET PARSEONLY OFF
分享到:
评论

相关推荐

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

    SET PARSEONLY检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。SET PARSEONLY { ON | OFF }当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server ...

    教务管理系统asp.net+c#+sql server2005

    3. 数据访问层(Data Access Layer):通过ADO.NET与SQL Server 2005通信,执行SQL语句进行数据库操作。 4. 数据库层(Database Layer):SQL Server 2005存储所有教务相关数据。 "个性网站"标签可能意味着该系统在...

    C# + SQL 信息管理系统

    通过SqlConnection对象建立连接,SqlCommand对象执行SQL语句,SqlDataReader或DataSet对象获取和操作数据。 四、信息管理系统架构设计 1. 用户界面层:通常采用Windows Forms或WPF,设计用户友好的界面,如登录窗口...

    C# 写的数据库查看器 支持SQL2000和oracle10g 高亮语法输入提醒

    2、双击左侧数据表或字段,再sql语句中自动添加。 3、输入sql语句时,自动提醒关键字和表名,点击空格或回车自动完成,基本是模拟VS2005的风格和用法。 4、系统自动判断关键字,然后会相应的染色。 5、输入表名后,...

    C#+sql2000医院住院管理系统

    以上模块的实现离不开C#与SQL2000的紧密配合。C#的.NET框架提供了丰富的类库,简化了数据访问,使得开发者可以更专注于业务逻辑;而SQL2000则通过其强大的数据处理能力,保障了数据的准确性和一致性。 总的来说,...

    学生信息管理系统(基于VS2005asp.net+C#+sql)带建表语句和项目开发图

    《基于VS2005 asp.net+C#+SQL的学生信息管理系统详解》 学生信息管理系统是教育信息化领域中不可或缺的一部分,它有效地帮助学校管理和追踪学生的各项信息。本系统以Visual Studio 2005(VS2005)为开发工具,结合...

    基于C# +sql server的仓库管理系统源码

    开发者可以通过SQL语句进行数据的增删改查,同时,SQL Server还提供了事务处理、备份恢复、性能优化等高级功能,确保数据的安全和系统运行的稳定性。 仓库管理系统的功能通常包括库存管理、入库管理、出库管理、...

    自己动手编写SQL注入漏洞扫描工具

    SQL注入是一种常见的网络安全威胁,攻击者通过在输入字段中插入恶意的SQL语句来操纵数据库,获取敏感信息或执行非法操作。这个项目可能是用某种编程语言(如Python、Java或C#)实现的,目标是帮助开发者和安全研究...

    C#串口上位机界面。SQL存储串口数据,没有作图操作,但是有数据显示

    开发者需要创建数据库表,定义字段,然后使用SqlCommand对象执行SQL语句将串口数据插入到相应表中。 5. **数据处理**:在串口接收数据后,可能需要进行预处理,如数据验证、格式转换等,确保数据符合存储和展示的...

    c# 读取串口录入数据库

    然后,创建一个`SqlCommand`对象,用于执行SQL语句。数据插入通常使用`INSERT INTO`语句。例如: ```csharp using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); ...

    某單位C#軟件開發工程師SQL面試試題

    在C#软件开发工程师的SQL面试中,对SQL语言的掌握是至关重要的。以下是对给定面试试题的详细解析: 1. 存储过程插入信息并返回客户编号: 创建的存储过程`[dbo].[InsertInfo]`接受一个`varchar(50)`类型的参数`@...

    串口接收与SQL数据库存取

    SqlCommand对象可以执行这些SQL语句,而SqlDataAdapter和DataSet则可以用来填充或更新数据表。 例如,以下是一个简单的代码片段,展示了如何使用ADO.NET将串口接收到的数据插入到SQL Server表中: ```csharp using...

    C#串口实时监控 通讯实例实时监控串口然后处理数据 2、涉及sql数据库的操作.zip

    在本项目"C#串口实时监控 通讯实例实时监控串口然后处理数据 2、涉及sql数据库的操作.zip"中,我们可以深入探讨C#编程语言在串口通信和数据库操作方面的应用。以下是对该项目中涉及的知识点的详细说明: 1. **C# ...

    sql模糊查询

    在实际开发中,直接将用户输入作为SQL语句的一部分存在安全隐患,特别是SQL注入攻击的风险。因此,建议使用参数化查询或预编译语句来提高安全性: ```csharp string sql = "SELECT * FROM a WHERE name LIKE @name...

    电压损失校验_c#cable_

    ADO.NET提供了一套全面的数据访问组件,如Connection(连接)、Command(命令)、DataAdapter(数据适配器)和DataSet(数据集),用于执行SQL语句、填充数据表和处理事务等。 该程序的实现可能包含以下几个核心...

    C#-字符串操作类

    、指定字符串分割字符串、指定字符串位置获取字符串、过滤SQL中非法字符、检查SQL语句中是否有非法关键字、随机字符串生成、唯一字符串生成、随机数字生成、唯一数字串生成、去除HTML标签、判断是否整型、判断是否...

    使用正则表达式匹配tsql注释语句

    正则表达式(Regular Expression)是一种强大的文本处理工具,可以用来匹配、查找、替换等操作,包括匹配SQL中的注释语句。在本文中,我们将探讨如何使用正则表达式有效地匹配T-SQL(Transact-SQL)中的注释。 首先...

    C#串口实时监控 通讯实例

    `SqlConnection`对象用于建立数据库连接,`SqlCommand`对象用于执行SQL语句,如INSERT、SELECT等。在实时监控场景下,可能需要将接收到的数据实时插入到数据库中,以便后续分析和查询。 为了减少重复工作,该项目...

    insql2oracle

    这些提供者允许C#应用程序直接与Oracle数据库通信,执行INSERT语句或使用批处理技术提高效率。 4. **错误处理和重试机制**:由于数据迁移可能遇到各种问题,如网络中断、数据冲突等,因此需要有健壮的错误处理和重...

    C#串口接收数据保存到数据库

    5. **执行命令并检查结果**:调用SqlCommand的ExecuteNonQuery()方法执行SQL插入操作。如果成功,返回值是受影响的行数。 结合串口通信和数据库保存,一个基本的C#程序流程可能如下: 1. 创建SerialPort对象,配置...

Global site tag (gtag.js) - Google Analytics