页面文件:
DataTable terid = new teacherAdmin().getTerID(Session["username"].ToString());
Repeater1.DataSource = new classAdmin().sClasses(terid.Rows[0][0].ToString());
Repeater1.DataBind();BLL:
public DataTable sClasses(string userid)
{
     return sDAO.selectClassesIDByClassTerID(userid);
}DAL:
public DataTable sClasses(string userid)
{
       string cmd = "up_selectClasses";
       DataTable dt = new DataTable();
       SqlParameter[] paras = new SqlParameter[]
       {
           new SqlParameter("@userid",userid)
        };
        dt = sqlhelper.ExecuteQuery(cmd,paras,CommandType.StoredProcedure);
        return dt;
       }
SQLHelper:
        public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmdText, GetConn());
            cmd.CommandType = ct;
            cmd.Parameters.AddRange(paras);
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }
存储过程:
ALTER PROCEDURE [dbo].[up_selectClasses]
@userid int
AS
BEGIN
SELECT * FROM dbo.classT WHERE @userid=dbo.classT.classTerID
END运行后会提示ExecuteReader: CommandText 属性尚未初始化小弟实在是没办法了啊 想了2个小时多了 还找不出问题所在
大哥大姐们 帮帮我吧!

解决方案 »

  1.   

    你的程序里执行查询操作从来也不用判断是否执行成功啊,适当的加上try catch 可以看到问题出在哪里
      

  2.   

    SELECT * FROM dbo.classT WHERE dbo.classT.classTerID
    =@userid
    单步跟踪
      

  3.   

    创建存储过程的语法是:
    create PROCEDURE [dbo].[up_selectClasses]
    @userid int
    AS
    BEGIN
    SELECT * FROM dbo.classT WHERE @userid=dbo.classT.classTerID
    ENDALTER是修改语法
      

  4.   

    这个我知道 我发出这个是因为比较方便找到  存储过程 也没问题啊 在sql server里测试过了
      

  5.   

    return sDAO.selectClassesIDByClassTerID(userid);
    呵呵 是我太粗心了  
    方法指向错误!
    放分吧
      

  6.   

    SqlConnection con= GetConn();
    cmd=con.CreateCommand();
    cmd.CommandText=cmdText;
    //cmd = new SqlCommand(cmdText, GetConn());
      cmd.CommandType = ct;
      cmd.Parameters.AddRange(paras);
    .....
    改一下看看