Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用参数化sql包装器_C#_Sql Server 2005 - Fatal编程技术网

C# 使用参数化sql包装器

C# 使用参数化sql包装器,c#,sql-server-2005,C#,Sql Server 2005,有人能教我如何使用这个sql包装器吗?我不知道在第二个参数参数上放什么。。。谢谢= public void Insert(string strSQL, List<MySqlParameter> params) { if(this.OpenConnection() == true) { MySqlCommand cmd = new MySqlCommand(strSQL, connection) foreach(MySqlParamete

有人能教我如何使用这个sql包装器吗?我不知道在第二个参数参数上放什么。。。谢谢=

public void Insert(string strSQL, List<MySqlParameter> params)
{
    if(this.OpenConnection() == true)
    {
        MySqlCommand cmd = new MySqlCommand(strSQL, connection)
        foreach(MySqlParameter param in params)
           cmd.Parameters.Add(param);

        cmd.ExecuteNonQuery();
        this.CloseConnection();
    }
 }

你可以这样使用它

List<MySqlParameter> sqlParams = new List<MySqlParameter>();

SqlParameter param1  = new SqlParameter();
param.ParameterName = "@City";
param.Value = inputCity;

SqlParameter param2  = new SqlParameter();
param.ParameterName = "@Country";
param.Value = inputCountry;

sqlParams.Add(param1);
sqlParams.Add(param2);

Insert("SELECT * FROM customers WHERE city = @City AND country = @Country", sqlParams);
下面是一个示例代码

List<MySqlParameter> parameters = new List<MySqlParameter>();
string sql = "INSERT INTO table1 VALUES(?Name, ?Age)";
parameters.Add(new MySqlParameter() { ParameterName = "?Name", Value = "Mahan"});
parameters.Add(new MySqlParameter() { ParameterName = "?Age", Value = "??"});

Insert(sql, parameters);

这听起来像是c调用代码的问题,在这种情况下可能会有所帮助-它是一个高度优化的实用程序层,使调用更容易,例如:

int id = 123;
string name = "Fred";
connection.Execute(@"insert into TableName (Id, Name) values (?id, ?name)",
    new {id, name});
它为您处理所有命令和参数代码,因此您只需担心连接、SQL和值。还有类似的方法Query[]等用于读取数据。例如:

int customerId = 12345;
List<Order> orders = connection.Query<Order>(@"
    select * from Orders where CustomerId = ?customerId", new {customerId})
     .ToList();

我只需要一个关于如何使用此sql包装器的示例,谢谢=您确定这可以编译吗?”params'是一个关键字,所以我怀疑编译器会接受它作为参数名吗?我刚刚在stackoverflow的某个地方找到了这个sql包装,并将它粘贴到了这里。。。等一下。。。我会把我发现它的链接,我会诚实,我不认为这是一个伟大的包装。1-当它实际上可以运行任意SQL命令时,它意味着insert语句;2-它应该使用一个params数组作为第二个参数;3-因为根据您的问题,您仍在使用C,这还不够完整,无法显示正确的连接处理等。有没有更短的方法可以使用它?或者用sql包装器重新编码?因为如果我将使用这种方法,我将不再使用sql包装器,因为在不使用包装器的情况下,使用参数化查询需要使用相同长度的代码。您的意思是,更短???您询问如何在示例中使用此包装器,我向您展示了一个示例…谢谢。。。。这似乎是一个很好的代码,但我如何使用这个代码选择?我只在SQLAdapter上分配它?