C# SqlParameter name不带@  与带@的区别

解决方案 »

  1.   


    upd_com .Parameters .Add("@学号", SqlDbType.NVarChar ,50);
                upd_com.Parameters.Add("@姓名", SqlDbType.NChar, 10);
                upd_com.Parameters.Add("@性别", SqlDbType.NChar, 10);
                upd_com.Parameters.Add("@民族", SqlDbType.NChar, 10);
                upd_com.Parameters.Add("@出生日期", SqlDbType.Date);
                upd_com.Parameters.Add("@所属班级", SqlDbType.NChar, 10);
                upd_com.Parameters.Add("@家庭地址", SqlDbType.NText);
    这个貌似跟 数据库 本身有关系,在数据库中写sql语句 参数前也是带@
      

  2.   

    SqlParameter是一个数组集合,中间的元素是要传递参数给数据库的存储过程的,@Name,前面加@是数据库中建立存储过程时候定义变量的标识。
    SqlParameter中的元素是和存储过程中的参数名称对应的。
      

  3.   

    就是一个语法糖,标志这个是一个参数。在sql语句里面,也是这样子的。保持一致。
      

  4.   

    呵呵,别误导人了。
    @Name是参数 不是变量。而且这个并非要对应存储过程,我也可以赋值 upd_com.Parameters[0].Value ="1234567";
                upd_com.Parameters[1].Value = "张三";
                upd_com.Parameters[2].Value = "男";
                upd_com.Parameters[3].Value = "汉族";
                upd_com.Parameters[4].Value = 2010-01-01;
                upd_com.Parameters[5].Value = "652";
                upd_com.Parameters[6].Value = "北京市";
    upd_com.CommandText = "update 学生信息 set 姓名=@姓名,性别=@性别,出生日期=@出生日期,民族=@民族,所属班级=@所属班级,家庭地址=@家庭地址 where 学号=@学号";
     if (upd_com.ExecuteNonQuery() > 0)
                {
                    MessageBox.Show("更新数据库成功","成功提示");
                }
      

  5.   

    如:
     List<SqlParameter> loanParaList = new List<SqlParameter>();
                string sql = @"INSERT INTO [T_STOCK_LOAN]([CASE_NO],[HOLDER_NO],[HOLDER_NAME],[HOLDER_DEPT],[FLG_STATUS],[HOLDER_STATUS]," +
                                                            "[LOAN_TIME],[CRT_TIME],[UPD_TIME],[MEMO],[USER_ID],[USER_NAME])" +
                                                             "VALUES(@orderNo,@userId,@userName,@deptId,'"
                                                                        + PropertiesClass.APPROVE_ONE_NOT + "','"
                                                                        + PropertiesClass.IN_STORAGE_ING + @"',getdate(),getdate(),null,
                                                                @memo ,@operateUserID,@operateUserName)";
                loanParaList.Add(new SqlParameter("orderNo",orderNo));//不带@符号的
                loanParaList.Add(new SqlParameter("userId",userId));
                loanParaList.Add(new SqlParameter("@userName",userName));//带@符号
                loanParaList.Add(new SqlParameter("deptId",deptId));
                loanParaList.Add(new SqlParameter("memo",memo));
                loanParaList.Add(new SqlParameter("operateUserID",operateUserID));
                loanParaList.Add(new SqlParameter("operateUserName", operateUserName));