弱弱问题,SqlParameter 的主要作用是什么啊?
StringBuilder   strSql   =   new   StringBuilder(); 
 strSql.Append( "select   *   from   WS_Class "); 
 strSql.Append( "   where   ClassID=   @ClassID "); 
 SqlParameter[]   parameters   =   {new   SqlParameter( "@ClassID ",   SqlDbType.Int,4)}; 
 parameters[0].Value   =   ClassID; 
 return   DbHelperSQL.Exists(strSql.ToString(),   parameters);   
 这一句我老是看不明白 
 1,SqlParameter参数的作用是用来做什么的??? 
 2,new   SqlParameter( "@ClassID ",   SqlDbType.Int,4)这句,@ClassID   是什么意思 
 3,parameters[0].Value   =   ClassID;这句,ClassID是数据库中的字段吗? 
 4,这里SqlParameter参数为什么只需定义ClassID?其他字段不需要定义吗?
------解决方案--------------------1,2,3: 
 这里是执行存储过程,@ClassID是存储过程的参数   
 4:这里SqlParameter参数为什么只需定义ClassID?   
 应为此SP只有这个参数
------解决方案--------------------定义参数,比如存储过程的参数,你也可以简单的将他理解为替换标志位
------解决方案--------------------1,SqlParameter参数的作用是用来做什么的??? 
 2,new SqlParameter( "@ClassID ", SqlDbType.Int,4)这句,@ClassID 是什么意思 
 3,parameters[0].Value = ClassID;这句,ClassID是数据库中的字段吗? 
 4,这里SqlParameter参数为什么只需定义ClassID?其他字段不需要定义吗?   
 问题一: 这个里面的参数是你在查询时要用到的参数,就是你存储过程里要用到的条件 
 问题二: @ClassID存储过程里的参数 
 问题三: ClassID不是数据库里的字段,要传到存储过程里才是的 
 问题四: 因为这个存储过程里的查询语句只有一个条件
------解决方案--------------------SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 SqlParameter[] 对象,主要是varchar类型的字段,如果使用默认长度,但默认长度大于表中字段长度或者默认长度小于赋值变量的长度,都会截断那些多余的字符的。
------解决方案--------------------我说过你就这么想SqlParameter( "@ClassID ", SqlDbType.Int,4)就是将这个sql语句或者纯出过趁里的@ClassID替换为ClassID的值