protected void query_Click(object sender, EventArgs e)
    {
        string ls_palno, ls_bar_code;
        ls_bar_code = this.tb_bar_code.Text.Trim();        IDAL objDAL = DALFactory.GetDBO();
        objDAL.Open();
        string cmdText = "select palno from barcodeitem where bar_code=@BAR_CODE";
        BLL.DAL.Parameter[] objParameter = { new BLL.DAL.Parameter("@bar_code", ls_bar_code) };
        DataSet objSet = objDAL.DataAdapter(CommandType.Text, cmdText, "barcodeitem", objParameter);        ls_palno = objSet.Tables["barcodeitem"].Rows[0]["palno"].ToString().Trim();
        objDAL.Close();
        this.lb_palno.Text = ls_palno;
倒数第三行ls_palno
那一行显示在位置0处没有返回行不知道是为什么 没有取到值 请大侠指点。数据库里有数据的。而且是唯一一条值。

解决方案 »

  1.   

    objSet.Tables["barcodeitem"]你确定下你的 objSet 是否有 barcodeitem?并且它里面是有数据的。
      

  2.   

    DataSet中的barcodeitem表查询结果为空(0行查询结果)。但是你直接去取第一行的值了。
      

  3.   

    ls_palno = objSet.Tables["barcodeitem"].Rows[0]["palno"].ToString().Trim();
    首先看看objSet.Tables["barcodeitem"]有没有取到值?
    如果有,再看看有palno这个字段嘛?
      

  4.   

    注意参数名称大小写protected void query_Click(object sender, EventArgs e)
      {
      string ls_palno, ls_bar_code;
      ls_bar_code = this.tb_bar_code.Text.Trim();  IDAL objDAL = DALFactory.GetDBO();
      objDAL.Open();
      string cmdText = "select palno from barcodeitem where bar_code=@BAR_CODE";
      BLL.DAL.Parameter[] objParameter = { new BLL.DAL.Parameter("@BAR_CODE", ls_bar_code) };
      DataSet objSet = objDAL.DataAdapter(CommandType.Text, cmdText, "barcodeitem", objParameter);  ls_palno = objSet.Tables["barcodeitem"].Rows[0]["palno"].ToString().Trim();
      objDAL.Close();
      this.lb_palno.Text = ls_palno;
      

  5.   

    断点调试看看objSet.Tables["barcodeitem"]里面到底有没有数据...
      

  6.   


    protected void query_Click(object sender, EventArgs e)
      {
      string ls_palno, ls_bar_code;
      ls_bar_code = this.tb_bar_code.Text.Trim();  IDAL objDAL = DALFactory.GetDBO();
      objDAL.Open();
      string cmdText = "select palno from barcodeitem where bar_code=@BAR_CODE";
      BLL.DAL.Parameter[] objParameter = { new BLL.DAL.Parameter("@BAR_CODE", ls_bar_code) };
      DataSet objSet = objDAL.DataAdapter(CommandType.Text, cmdText, "barcodeitem", objParameter);
      //出现这个问题,说明objSet是null值
      ls_palno = objSet.Tables[0].Rows[0]["palno"].ToString().Trim();
      objDAL.Close();
      this.lb_palno.Text = ls_palno;
      

  7.   

    ls_palno = objSet.Tables["barcodeitem"].Rows[0]["palno"].ToString().Trim();
    在这一行前面加一行。
    int i = objSet.Tables["barcodeitem"].Rows.Count;
    看看i的值,如果是零,就说明没有取到值啊。
      

  8.   

    1.先把sql语句执行下看看有没有数据
    2.看看参数可赋值进去了,在看看你这个参数条件数据库中是否有
    3.objSet 是否有 barcodeitem表
      

  9.   

    objSet进行判断了没,是否有数据行存在。
      

  10.   

    objSet 
     里面有数据吗?
      

  11.   


    先判断一下DataSet中的数据表是否存在数据~if( objSet.Tables.Rows.Count == 0 ){
      //未发现任何数据.
    }else{
      ls_palno = objSet.Tables["barcodeitem"].Rows[0]["palno"].ToString().Trim();
      this.lb_palno.Text = ls_palno;
    }