-1

我已经为我的应用程序编写了插入查询以使用密码创建新用户,但它不起作用,请检查并更正它。

 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();
4

4 回答 4

6

您没有执行查询。你需要做:

cm.ExecuteNonQuery();
于 2012-06-25T06:20:47.747 回答
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();
于 2012-06-25T06:22:38.437 回答
0

那里缺少两件事....

  1. 您在查询中传递了 3 个 sql 变量并仅添加了两个参数。

  2. 也添加以下行,

    cm.ExecuteNonQuery();
    
于 2012-06-25T06:45:18.890 回答
0

ExecuteNonQuery() 是 SqlCommand 对象中最常用的方法之一,用于执行不返回结果集的语句(即插入数据、更新数据等语句)

所以用

cm.ExecuteNonQuery();

并在您的示例中添加所有使用的参数,即 3 个参数。

于 2017-04-20T07:05:04.377 回答