C# 使用参数化sql包装器
有人能教我如何使用这个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
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上分配它?