數(shù)據(jù)庫SqlParameter 的插入操作,防止sql注入的實(shí)現(xiàn)代碼
例子: 點(diǎn)擊Button1按鈕的時(shí)候就把數(shù)據(jù)插入數(shù)據(jù)庫中。
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; //鏈接數(shù)據(jù)庫的字符串
private SqlConnection conDB; //數(shù)據(jù)庫的鏈接
private SqlTransaction _trans; //事務(wù)對(duì)象
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 = "插入失敗";
}
}
/// 執(zhí)行一條更新語句
/// </summary>
/// <param name="SQLString">需要執(zhí)行的SQL語句。</param>
/// <param name="cmdParms">執(zhí)行參數(shù)數(shù)組</param>
/// <returns>成功返回True,失敗返回False。</returns>
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);
}
}
}
}
}
- 淺談三種數(shù)據(jù)庫的?SQL?注入
- 數(shù)據(jù)庫之SQL注入原理以及過程的簡單介紹
- 一個(gè)簡單的后臺(tái)與數(shù)據(jù)庫交互的登錄與注冊(cè)[sql注入處理、以及MD5加密]
- Mysql數(shù)據(jù)庫使用concat函數(shù)執(zhí)行SQL注入查詢
- sql注入數(shù)據(jù)庫修復(fù)的兩種實(shí)例方法
- SQL數(shù)據(jù)庫的高級(jí)sql注入的一些知識(shí)
- 數(shù)據(jù)庫中的內(nèi)容字段被掛馬的替換方法 SQL注入
- ASP+MSSQL2000 數(shù)據(jù)庫被批量注入后的解決方法
- sql注入數(shù)據(jù)庫原理詳情介紹
相關(guān)文章
充分利用ASP.NET的三種緩存提高站點(diǎn)性能的注意方法
充分利用ASP.NET的三種緩存提高站點(diǎn)性能的注意方法...2007-09-09
asp.net core集成CKEditor實(shí)現(xiàn)圖片上傳功能的示例代碼
這篇文章主要介紹了asp.net core集成CKEditor實(shí)現(xiàn)圖片上傳功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
asp.net錯(cuò)誤處理Application_Error事件示例
Application_Error事件與Page_Error事件相類似,可使用他捕獲發(fā)生在應(yīng)用程序中的錯(cuò)誤。由于事件發(fā)生在整個(gè)應(yīng)用程序范圍內(nèi),因此您可記錄應(yīng)用程序的錯(cuò)誤信息或處理其他可能發(fā)生的應(yīng)用程序級(jí)別的錯(cuò)誤2014-01-01
.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時(shí)
這篇文章主要介紹了.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時(shí),本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
asp.net2.0實(shí)現(xiàn)郵件發(fā)送(測試成功)
2008-06-06
使用ASP.NET中關(guān)于代碼分離的實(shí)例分享
本文主要簡單介紹了如何讓代碼分離閱讀起來更方便,不至于代碼過于臃腫,這里舉一反三,希望對(duì)大家有所幫助。2016-04-04

