C#插入查询不起作用

时间:2012-06-25 06:19:15

标签: 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();

4 个答案:

答案 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)

那里缺少两件事......

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

  2. 也添加以下行,

    cm.ExecuteNonQuery();
    

答案 3 :(得分:0)

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

所以使用

cm.ExecuteNonQuery();

并且还添加了所有使用的参数,例如示例中的3个参数。