加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

数据库SqlParameter 的插入操作,防止sql注入的实现代码

发布时间:2022-10-10 15:25:45 所属栏目:MySql教程 来源:
导读:  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using Sys
  using System;
 
  using System.Collections.Generic;
 
  using System.Linq;
 
  using System.Web;
 
  using System.Web.UI;
 
  using System.Web.UI.WebControls;
 
  using System.Text;
 
  using System.Data.SqlClient;
 
  using System.Data;
 
  using System.Configuration;
 
  namespace ParaMeter
 
  {
 
  public partial class Test : System.Web.UI.Page
 
  {
 
  private string connectionStr; //链接数据库的字符串
 
  private SqlConnection conDB; //数据库的链接
 
  private SqlTransaction _trans; //事务对象
 
  protected void Page_Load(object sender, EventArgs e)
 
  {
 
  //connectionStr = ConfigurationSettings.AppSettings["constr"];
 
  connectionStr = "server=10.11.43.189\\SQL2008;database=OA_WEB_DB;uid=sa;pwd=123456";
 
  conDB = new SqlConnection(connectionStr);
 
  }
 
  protected void Button1_Click(object sender, EventArgs e)
 
  {
 
  StringBuilder strSql = new StringBuilder();
 
  strSql.Append("INSERT INTO [OA_WEB_DB].[dbo].[OA_RT_FileType]([FileTypeName],[Deleted])");
 
  strSql.Append("VALUES(@fileName,@delete)");
 
  SqlParameter[] parameters = {
 
  new SqlParameter("@fileName", SqlDbType.NVarChar,100),
 
  new SqlParameter("@delete",SqlDbType.Bit),
 
  };
 
  parameters[0].Value = "文件类型";
 
  parameters[1].Value = false;
 
  bool IsSucc = ExecUpdateSql(strSql.ToString(), parameters);
 
  if (IsSucc)
 
  {
 
  Label1.Text = "插入成功";
 
  }
 
  else
 
  {
 
  Label1.Text = "插入失败";
 
  }
 
  }
 
  /// 执行一条更新语句
 
  ///
 
  ///
 
  需要执行的SQL语句。
 
  ///
 
  执行参数数组
 
  /// 成功返回True,失败返回False。
 
  private bool ExecUpdateSql(string SQLString, params SqlParameter[] cmdParms)
 
  {
 
  using (SqlCommand cmd = new SqlCommand())
 
  {
 
  try
 
  {
 
  PrepareCommand(cmd, conDB, _trans, SQLString, cmdParms);
 
  int iret = cmd.ExecuteNonQuery();
 
  return true;
 
  }
 
  catch (System.Data.SqlClient.SqlException e)
 
  {
 
  return false;
 
  }
 
  }
 
  }
 
  private void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
 
  {
 
  if (conn.State != ConnectionState.Open)
 
  conn.Open();
 
  cmd.Connection = conn;
 
  cmd.CommandText = cmdText;
 
  if (trans != null)
 
  cmd.Transaction = trans;
 
  cmd.CommandType = CommandType.Text;//cmdType;
 
  if (cmdParms != null)
 
  {
 
  foreach (SqlParameter parameter in cmdParms)
 
  {
 
  if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
 
  (parameter.Value == null))
 
  {
 
  parameter.Value = DBNull.Value;
 
  }
 
  cmd.Parameters.Add(parameter);
 
  }
 
  }
 
  }
 
  }
 
  }
 

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!