是否可以在C#中执行任何类型的原始SQL命令(SELECT,UPDATE,DELETE ....)。我想添加一个类似于SQL Server Management Studio查询窗口的功能,我可以在其中输入任何SQL命令并执行它。在我的情况下,我并不担心SQL注入,我知道这个功能的风险。所有连接参数都传递给我(我有一个有效的连接字符串),但我对数据库本身一无所知。在获取命令之前,SQL命令在语法上也是正确的。我似乎无法找到适用于所有情况的解决方案,可能只是忽略了明显的解决方案。
答案 0 :(得分:1)
以下是您的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();
}
}
答案 1 :(得分:1)
您可以简单地使用ADO .NET并在查询结果成功与否时显示查询结果,只需在执行查询时将以下代码放在事件处理程序中:
using (SqlConnection conn = ConnectionClass.GetInstance().Connection())
using (SqlCommand cmd = new SqlCommand(TextBoxQuery.Text, conn))
{
conn.Open();
TextBoxNoOfRowEffected.Text = cmd.ExecuteNonQuery().ToString();
}