当前位置:Gxlcms >
数据库问题 >
C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】
C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】
时间:2021-07-01 10:21:17
帮助过:2人阅读
***********************非查询操作*****************************************/
//今天太晚了,先写个非查询操作的,明天在写查询操作的。
/****函数*****/
/// <summary>
/// 增删改数据,返回影响行数,没有则返回-1
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="ps">参数</param>
/// <returns>返回影响行数</returns>
static string connStr =
"server=IP;User Id=账号名;password=密码;Database=表名";
public static int ExecuteNonQuery(
string sql,
params MySqlParameter[] ps)
{
using (MySqlConnection conn =
new MySqlConnection(connStr))
{
using (MySqlCommand cmd =
new MySqlCommand(sql, conn))
{
cmd.Parameters.AddRange(ps);
conn.Open();
return cmd.ExecuteNonQuery();
//返回受影响行数
}
}
}
/****应用举例****/
public void InsertData()
{
int cid=
1,aid=
2;
string name=
"hha";
string sql =
"insert into tb_compart (compartID,compartName,areaID)values(@compartID,@compartName,@areaID);";
MySqlParameter[] ps ={
new MySqlParameter(
"@compartID",(
object)cid),
new MySqlParameter(
"@compartName",name),
new MySqlParameter (
"@areaID",(
object)aid)};
int r = Mysql.MySQLHelper.ExecuteNonQuery(sql, ps);
//r得值就是受影响的行数,执行失败r=-1;
}
}
C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】
标签: