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.   

    1,2,3:
    这里是执行存储过程,@ClassID是存储过程的参数4:这里SqlParameter参数为什么只需定义ClassID?应为此SP只有这个参数
      

  2.   

    那如果我sql改成:
    strSql.Append("select [ClassID],[ChannelID],[ClassName],[ClassType],[OpenType],[ParentID],[ParentPath],[Depth],[RootID],[Child],[arrChildID],[PrevID],[NextID],[OrderID],[Tips],[Readme],[Meta_Keywords],[Meta_Description],[LinkUrl],[ClassPicUrl],[ClassDir],[ParentDir],[SkinID],[TemplateID],[ShowOnTop],[ShowOnIndex],[IsElite],[EnableAdd],[EnableProtect],[MaxPerPage],[DefaultItemTemplate],[DefaultItemSkin],[ItemListOrderType],[ItemOpenType],[ItemCount],[ClassPurview],[EnableComment],[CheckComment],[PresentExp],[DefaultItemPoint],[DefaultItemChargeType],[DefaultItemPitchTime],[DefaultItemReadTimes],[DefaultItemDividePercent],[Custom_Content],[CommandClassPoint],[ReleaseClassPoint] ");strSql.Append(" FROM WS_Class ");那么SqlParameter 是不是要所有都写进去啊???
      

  3.   

    而且你写出来的没有用的,用一个select * 就可以了,除非你要考虑性能的一点点差异
      

  4.   

    1,SqlParameter参数的作用是用来做什么的???
    2,new SqlParameter("@ClassID", SqlDbType.Int,4)这句,@ClassID 是什么意思
    3,parameters[0].Value = ClassID;这句,ClassID是数据库中的字段吗?
    4,这里SqlParameter参数为什么只需定义ClassID?其他字段不需要定义吗?问题一: 这个里面的参数是你在查询时要用到的参数,就是你存储过程里要用到的条件
    问题二: @ClassID存储过程里的参数
    问题三: ClassID不是数据库里的字段,要传到存储过程里才是的
    问题四: 因为这个存储过程里的查询语句只有一个条件
      

  5.   

    SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 SqlParameter[] 对象,主要是varchar类型的字段,如果使用默认长度,但默认长度大于表中字段长度或者默认长度小于赋值变量的长度,都会截断那些多余的字符的。
      

  6.   

    问题三: ClassID不是数据库里的字段,要传到存储过程里才是的那么未传到存储过程前是什么?
      

  7.   

    我说过你就这么想SqlParameter("@ClassID", SqlDbType.Int,4)就是将这个sql语句或者纯出过趁里的@ClassID替换为ClassID的值