做了一个简单的注册页面,把textbox里面的值传入数据库,其中使用SqlParameter[]这个数组,因为刚接触不久所以调试没成功,各位能帮我看看哪里错了吗
DBhelper类中的一个方法:    public static int ExecuteCommand(string SqlLanguage, params SqlParameter[] values)
    {
        SqlCommand comm = new SqlCommand(SqlLanguage, Connection);
        comm.Parameters.AddRange(values);
        return comm.ExecuteNonQuery();
    }
后台代码:Session["name"] = txtUser.Text.Trim().ToString();
         Session["pwd"] = txtPwd.Text.Trim().ToString();
         Session["mail"] = txtMail.Text.Trim().ToString();
         Session["phone"] = txtPhone.Text.Trim().ToString();        string sql = string.Format("insert into Users(UserName,UserPassword,Phone,Email) values(@name,@pwd,@phone,@mail) ");
        SqlCommand command = new SqlCommand(sql,DbHelper.Connection);
        SqlParameter[] sp = {
                                new SqlParameter("@name",SqlDbType.VarChar,50),
                                new SqlParameter("@pwd",SqlDbType.VarChar,50),
                                new SqlParameter("@mail",SqlDbType.VarChar,50),
                                new SqlParameter("@phone",SqlDbType.VarChar,50)
                            };
        DbHelper.ExecuteCommand(sql, sp);
新手,见笑了

解决方案 »

  1.   

    你的SqlParameter怎么没有值啊?
    SqlParameter[] sp = {
    new SqlParameter("@name", txtUser.Text.Trim()),
    new SqlParameter("@pwd",txtPwd.Text.Trim()),
    new SqlParameter("@mail",txtMail.Text.Trim()),
    new SqlParameter("@phone",txtPhone.Text.Trim())
    };
    还有,你搞那么多ToString做啥啊,画蛇添足,降低效率。
      

  2.   

    如1搂所说,你的参数没有值,你只是给他定义了类型。
     public static void UpdateFeedBackState(string orderid)
            {
                if (string.IsNullOrEmpty(orderid))
                {
                    return;
                }
                try
                {
                    StringBuilder sql = new StringBuilder();
                    sql.Append("update orderinfo set O_FeedBackStatus=2 where O_OrderCode=@orderid and O_FeedBackStatus=1");
                    MySqlParameter param = new MySqlParameter("@orderid",orderid);
                    DBHelper.ExecuteNonQuery(sql.ToString(),param);
                }
                catch (Exception ex)
                {
                    Log.WriteLog("执行回传成功修改回传状态为2出错:", ex);
                    throw;
                }
            }
    其实一般只要写参数名会值就OK了,其他的不用管,像我这样。
      

  3.   


    //依次类推,可以选择用SqlParameter[],也可以选择List<SqlParameter>
    SqlParameter sp = new SqlParameter("@name", SqlDbType.VarChar, 50);
    sp.Value = Session["name"];
      

  4.   


    给参数赋值,你现在只给了类型
    Session["name"] = txtUser.Text.Trim().ToString();
             Session["pwd"] = txtPwd.Text.Trim().ToString();
             Session["mail"] = txtMail.Text.Trim().ToString();
             Session["phone"] = txtPhone.Text.Trim().ToString();        string sql = string.Format("insert into Users(UserName,UserPassword,Phone,Email) values(@name,@pwd,@phone,@mail) ");
            SqlCommand command = new SqlCommand(sql,DbHelper.Connection);
            SqlParameter[] sp = {
                                    new SqlParameter("@name",SqlDbType.VarChar,50),
                                    new SqlParameter("@pwd",SqlDbType.VarChar,50),
                                    new SqlParameter("@mail",SqlDbType.VarChar,50),
                                    new SqlParameter("@phone",SqlDbType.VarChar,50)
                                };
             sp[0].Value = XXX;
             sp[1].Value = XXX;
             sp[2].Value = XXX;
             sp[3].Value = XXX;
            DbHelper.ExecuteCommand(sql, sp);
      

  5.   

    Session["name"] = txtUser.Text.Trim().ToString();
             Session["pwd"] = txtPwd.Text.Trim().ToString();
             Session["mail"] = txtMail.Text.Trim().ToString();
             Session["phone"] = txtPhone.Text.Trim().ToString();        string sql = string.Format("insert into Users(UserName,UserPassword,Phone,Email) values(@name,@pwd,@phone,@mail) ");
            SqlCommand command = new SqlCommand(sql,DbHelper.Connection);
            SqlParameter[] sp = {
                                    new SqlParameter("@name",txtUser.Text.Trim()),
                                    new SqlParameter("@pwd",txtPwd.Text.Trim()),
                                    new SqlParameter("@mail",txtMail.Text.Trim()),
                                    new SqlParameter("@phone",txtPhone.Text.Trim())
                                };
             sp[0].Value = XXX;
             sp[1].Value = XXX;
             sp[2].Value = XXX;
             sp[3].Value = XXX;
            DbHelper.ExecuteCommand(sql, sp);
      

  6.   

    可以直接在里面赋值..
    sp[0].Value = XXX;
             sp[1].Value = XXX;
             sp[2].Value = XXX;
             sp[3].Value = XXX;..
      

  7.   

    SqlParameter[] sp = {
                                    new SqlParamete("@name",SqlDbType.VarChar,value1),
                                    new SqlParameter("@pwd",SqlDbType.VarChar,value2),
                                    new SqlParamete("@mail",SqlDbType.VarChar,value3),
                                    new SqlParamete("@phone",SqlDbType.VarChar,vlaue4)
                                };