我为我的应用程序编写了插入查询以创建具有密码的新用户,但是它无效,请检查并更正。
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();
答案 0 :(得分:6)
您没有执行查询。你需要这样做:
cm.ExecuteNonQuery();
答案 1 :(得分: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();
答案 2 :(得分:0)
那里缺少两件事......
您在查询中传递了3个sql变量,并且只添加了两个参数。
也添加以下行,
cm.ExecuteNonQuery();
答案 3 :(得分:0)
ExecuteNonQuery()是SqlCommand Object中最常用的方法之一,用于执行不返回结果集的语句(即插入数据,更新数据等语句)。
所以使用
cm.ExecuteNonQuery();
并且还添加了所有使用的参数,例如示例中的3个参数。