2012-06-25 78 views
-1

我已經爲我的應用程序寫入插入查詢來創建帶有密碼的新用戶,但它不起作用,請檢查並更正它。C#插入查詢不起作用

con.Open(); 
     string a; 
     a = "insert into tbl_KKSUser(EName,Uname,Password)values(@en,@un,@pas)"; 
     SqlCommand cm = new SqlCommand(a, con); 
     SqlParameter paramName; 
     paramName = new SqlParameter("@en", SqlDbType.VarChar, 25); 
     paramName.Value = DropDownList1.SelectedItem.Text; 
     cm.Parameters.Add(paramName); 

     string original = TextBox2.Text.Trim(); 
     int h = original.GetHashCode(); 
     string withHash = original; 
     b1 = Encoding.BigEndianUnicode.GetBytes(withHash); 
     encrypted = Convert.ToBase64String(b1); 
     SqlParameter paramPass; 
     paramPass = new SqlParameter("@pas", SqlDbType.VarChar, 300); 
     paramPass.Value = Convert.ToString(encrypted); 
     cm.Parameters.Add(paramPass); 
     Response.Write("<script>alert('inserted')</alert>"); 
     con.Close(); 
+1

您是否收到錯誤? – Prescott

+7

「它不工作」對於一個問題來說永遠不夠好。 *總是*說出實際發生的事情與你預期發生的事情。 –

+1

另外:你不設置@un參數。 –

回答

1

必須調用ExecuteNonQuery函數關閉連接

con.Open(); 
      string a; 
      a = "insert into tbl_KKSUser(EName,Uname,Password)values(@en,@un,@pas)"; 
      SqlCommand cm = new SqlCommand(a, con); 
      SqlParameter paramName; 
      paramName = new SqlParameter("@en", SqlDbType.VarChar, 25); 
      paramName.Value = DropDownList1.SelectedItem.Text; 
      cm.Parameters.Add(paramName); 

      string original = TextBox2.Text.Trim(); 
      int h = original.GetHashCode(); 
      string withHash = original; 
      b1 = Encoding.BigEndianUnicode.GetBytes(withHash); 
      encrypted = Convert.ToBase64String(b1); 
      SqlParameter paramPass; 
      paramPass = new SqlParameter("@pas", SqlDbType.VarChar, 300); 
      paramPass.Value = Convert.ToString(encrypted); 
      cm.Parameters.Add(paramPass); 

      cm.ExecuteNonQuery(); // here call ExecuteNonQuery 

      Response.Write("<script>alert('inserted')</alert>"); 
      con.Close(); 
6

您沒有執行查詢。你需要做的:

cm.ExecuteNonQuery(); 
+0

你..我忘了朋友,這是一個簡單的事情,我忘了寫朋友,這是我做了這麼多這樣的。 BT無論如何謝謝 – user1455232

+0

@ user1455232,是的,發生了,也按照你的問題在評論中提出的建議。這將改善您的代碼很多 – Habib

+0

@ user1455232,歡迎您 – Habib

0

兩個東西不見了那裏之前....

  1. 你傳入3個SQL變量查詢並只添加兩個參數。

  2. 添加以下行過,

    cm.ExecuteNonQuery(); 
    
0

爲ExecuteNonQuery()是在SqlCommand對象最常用的方法之一,用於執行語句不返回結果集(即之類的語句插入數據,更新數據等)

所以使用

cm.ExecuteNonQuery(); 

並在您的示例中添加所有使用的參數,即3個參數。