亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過 C# 避免帶有參數的 SQL 注入?

通過 C# 避免帶有參數的 SQL 注入?

C#
慕村9548890 2022-11-21 21:50:34
我最近調整了我的代碼以避免對 maria db 進行 SQL 注入,并在添加參數方面得到了幫助,當我使用參數方法頁面時出現運行時錯誤strSQL = "SELECT * from user where uid = @uid AND start >= @StartDate AND end <= @EndDate ";DataSet ds = QueryDataSet(strSQL, uid , StartDate, EndDate);public DataSet QueryDataSet(string strSQL,string uid , string StartDate, string EndDate){    try    {        MySqlDataAdapter da = new MySqlDataAdapter(strSQL, DBconn);        da.SelectCommand.Parameters.AddWithValue("@uid", uid );        da.SelectCommand.Parameters.AddWithValue("@StartDate", StartDate);        da.SelectCommand.Parameters.AddWithValue("@EndDate", EndDate);        DataSet ds = new DataSet();        da.Fill(ds);        return ds;    }    catch (Exception ex)    //catch    {        throw (new System.Exception(ex.Message));    }}我對使用 maria db 比較陌生,所以感謝您的幫助
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

如果你想避免 SQL 注入,除了參數化查詢之外的另一種方法是存儲過程。


您可以從此處閱讀它 => https://www.techonthenet.com/mariadb/procedures.php 或者您可以自己研究。


在 ASP.NET 應用程序中調用存儲過程的演示方法:


using (MySqlConnection con = new MySqlConnection(constr))

{

    using (MySqlCommand cmd = new MySqlCommand("Customers_GetCustomer", con))

    {

        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@CustId", customerId);


        using (MySqlDataAdapter sda = new MySqlDataAdapter(cmd))

        {

            DataTable dt = new DataTable();

            sda.Fill(dt);


            GridView1.DataSource = dt;

            GridView1.DataBind();

        }

    }

}

(代碼取自https://www.aspsnippets.com/Articles/Call-MySql-Stored-Procedure-with-Parameters-in-ASPNet-C-and-VBNet.aspx)


查看完整回答
反對 回復 2022-11-21
  • 1 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號