2017-03-09 119 views
2

我正在註冊頁面 我的代碼有什麼問題? 當我在瀏覽器中查看程序,它說: (語法錯誤INSERT INTO語句INSERT INTO sql語句無法正常工作「System.Data.OleDb.OleDbException」

說明:當前Web請求的執行過程中發生未處理的異常,請檢查堆棧跟蹤有關的詳細信息錯誤以及它起源於代碼

異常詳細信息:System.Data.OleDb.OleDbException:語法錯誤INSERT INTO語句中)從查詢

public partial class Sign_Up2 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     if (txtPass.Text != "" && 
      txtUname.Text != "" && 
      txtRePass.Text != "") 
     { 
      if (txtPass.Text.ToString().Trim() == txtRePass.Text.ToString().Trim()) 
      { 
       string str ="INSERT INTO T1 (Username,Password) VALUES('" + txtUname.Text.ToString() + "','" + txtPass.Text.ToString() + "');"; 
       DAL.ChangeTable(str); 
       Response.Redirect("log in.aspx"); 
      } 
     } 
    } 
} 
+1

當用戶名或密碼包含一個'''字,會發生什麼? (提示:您有安全漏洞。) – cdhowie

+0

是的 - 撇號(或分號)可能會導致您在變量中嵌入時產生悲傷。你應該使用參數。 – flaZer

回答

0

刪除分號

"INSERT INTO T1 (Username,Password) VALUES('" + txtUname.Text.ToString() + "','" + txtPass.Text.ToString() + "');"; 

"INSERT INTO T1 (Username,Password) VALUES('" + txtUname.Text.ToString() + "','" + txtPass.Text.ToString() + "')"; 
+0

在閉括號後檢查最後一個半圓 –