问一个小问题,请大侠详细点 C# SqlParameter name不带@ 与带@的区别 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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语句 参数前也是带@ SqlParameter是一个数组集合,中间的元素是要传递参数给数据库的存储过程的,@Name,前面加@是数据库中建立存储过程时候定义变量的标识。SqlParameter中的元素是和存储过程中的参数名称对应的。 就是一个语法糖,标志这个是一个参数。在sql语句里面,也是这样子的。保持一致。 呵呵,别误导人了。@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("更新数据库成功","成功提示"); } 如: 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)); 获取Falsh动画播放的时间 C#调用动态链接库的结构体数组指针问题 菜鸟问题,在线等! VS中输出调试信息到底有什么作用? 高手看!asp.net页面中如何执行其他程序页面? 窗体问题 用GRIDVIEW绑了数据以后,没有办法取得某个CEELS[*]中的数据,请指点! datatable的计算问题 socket如何从本机上的某一个指定ip发出去呢? .Net跨平台计划最新进展:Mono 0.13 is out!!!!! 怎么用自己定义的方法来画图形?求高手指点十分感谢! 急!!!为什么我vs2010连接mysql时找不到mysql数据源??
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语句 参数前也是带@
SqlParameter中的元素是和存储过程中的参数名称对应的。
@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("更新数据库成功","成功提示");
}
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));