c# - 如果我在单独的文件中使用连接类,ADO.NET 如何添加参数?

标签 c# ado.net

如果我在单独的文件中使用类,ADO.NET 如何添加参数?

类(class):

class SQLconnect
{
    public static void Sql(string Command_Text)
    {
        string connectionPath =
            "Data Source=USER\\SQLEXPRESS;Initial Catalog=db;Integrated Security=SSPI;";

        SqlConnection Connection = new SqlConnection(connectionPath);

        Connection.Open();

        SqlCommand Command = Connection.CreateCommand();
        Command.CommandText = Command_Text;
        Command.ExecuteNonQuery();

        Connection.Close();
    }
}

参数:

        SQLconnect.Sql("INSERT INTO [dbo].[work] ([name],[code])VALUES(@name, @code)");

        SqlParameter param = new SqlParameter();
        param.ParameterName = "@name";
        param.Value = nameTextBox.Text;
        param.SqlDbType = SqlDbType.Text;
        //   Parameters.Add(param);


        param = new SqlParameter();
        param.ParameterName = "@code";
        param.Value = codeTextBox.Text;
        param.SqlDbType = SqlDbType.Text;
        //   Parameters.Add(param);

最佳答案

一个选择是更新 SqlConnect.Sql() 方法以接受一组参数:

class SQLconnect
{
    public static void Sql(string Command_Text, params SqlParameter[] parameters)
    {
        string connectionPath =
            "Data Source=USER\\SQLEXPRESS;Initial Catalog=db;Integrated Security=SSPI;";

        SqlConnection Connection = new SqlConnection(connectionPath);

        Connection.Open();

        SqlCommand Command = Connection.CreateCommand();
        Command.CommandText = Command_Text;

        if(parameters != null && parameters.Length > 0) 
        {
          foreach(var p in parameters)
            Command.Parameters.Add(p);
        }


        Command.ExecuteNonQuery();

        Connection.Close();
    }
}

那么你的调用代码将是这样的:

    SqlParameter param1 = new SqlParameter();
    param1.ParameterName = "@name";
    param1.Value = nameTextBox.Text;
    param1.SqlDbType = SqlDbType.Text;

    param2 = new SqlParameter();
    param2.ParameterName = "@code";
    param2.Value = codeTextBox.Text;
    param2.SqlDbType = SqlDbType.Text;

    SQLconnect.Sql("INSERT INTO [dbo].[work] ([name],[code])VALUES(@name, @code)", param1, param2);

关于c# - 如果我在单独的文件中使用连接类,ADO.NET 如何添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10718822/

相关文章:

c# - 性能分析 ADO.NET 和 Entity Framework

c# - SQLite 数据库锁定异常

c# - 单机低延迟、高吞吐量数据传输的最佳并发框架

c# - 制作C#项目安装包

c# - 如何向 MessageBox 添加扩展方法

.net - SqlConnection.ClearAllPools,清除了什么?

c# - 只获取几个结果集

c# - ASP.NET MVC 3( Entity Framework )中的预加载

c# - 创建 ListView 时将形状信息添加到 ListView

c# - 通过 C# 应用程序连接到 SAP