执行任何原始SQL查询

本文关键字:查询 SQL 原始 任何 执行 | 更新日期: 2023-09-27 18:24:12

是否可以在C#中执行任何类型的原始SQL命令(SELECT、UPDATE、DELETE….)。我想添加一个类似于SQL Server Management Studio查询窗口的功能,在那里我只需键入任何SQL命令,它就会执行它。在我的情况下,我不担心SQL注入,我知道这个功能的风险。所有的连接参数都传递给我(我有一个有效的连接字符串),但我对数据库本身一无所知。在我得到命令之前,SQL命令在语法上也是正确的。我似乎无法找到一个在所有情况下都有效的解决方案,可能只是忽略了显而易见的解决方案。

执行任何原始SQL查询

以下是的ADO示例

using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
    string connectionString =
        "Data Source=(local);Initial Catalog=Northwind;"
        + "Integrated Security=true";
    // Provide the query string with a parameter placeholder. 
    string queryString =
        "UPDATE [dbo].[USR_Users] SET [Active] = 1 WHERE Id = 1";

    using (SqlConnection connection =
        new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);

        try
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        Console.ReadLine();
    }
}

您可以简单地使用ADO.NET并显示查询是否成功执行的结果,当您想要执行查询时,只需在事件处理程序中放入以下代码:

using (SqlConnection conn = ConnectionClass.GetInstance().Connection())
using (SqlCommand cmd = new SqlCommand(TextBoxQuery.Text, conn))
{
    conn.Open();
    TextBoxNoOfRowEffected.Text = cmd.ExecuteNonQuery().ToString();
}

SqlCommand.ExecuteNonQuery()文档