我写了一个方法
 public DataSet ReturnDataSet(string strSql)
        {
            //根据输入的Sql语句,返回DataSet数据对象
            DataSet ds = new DataSet();
            try
            {
                Open_cnn();
                SqlDataAdapter sqlAdapter;   
                sqlAdapter.SelectCommand.CommandText = strSql;
                sqlAdapter = new SqlDataAdapter(strSql, ConnStr);                sqlAdapter.Fill(ds);
            }
            catch (Exception e)
            {
                _ErrInfo = e.Message.ToString();
            }            return ds;
            Close_cnn();
        }
然后写了一个存储过程填充...报了找不到表0的错误...我以为存储过程写错了...但是在查询分析器里能查出两个表来...我又以为是方法写错了...于是用了另一个存储过程代换...结果能查出来...
现在我郁闷了.明明在查询分析器里能查出表来...绑定到dataset里就变成没表了....
哪个高手知道我错在哪了...

解决方案 »

  1.   

    去掉这句试试 sqlAdapter.SelectCommand.CommandText = strSql;
      

  2.   

    strSql  写的对吗?表名对不对
      

  3.   

    sqlAdapter.SelectCommand.CommandText = strSql 去掉这句也还是这样...strSql..是一个储存过程来的.有8个参数.只是一个分类搜索.我在查询分析器里负参都可以查询出来...绑定到dataset之后.用断点调试就出现table.count=0`没有查询到表`按理说.就算没有结果也应该有表的啊...郁闷了24小时..
      

  4.   

    SqlConnection conn=new SqlConnection(connectionString); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.selectCommand = new SqlCommand(); 
    da.selectCommand.Connection = conn; 
    da.selectCommand.CommandText = "ProcedureName"; 
    da.selectCommand.CommandType = CommandType.StoredProcedure; strSql怎么写的
      

  5.   

    ALTER PROCEDURE [dbo].[search_all]
      @page int,
      @amount int,
      @address int ,
      @str nvarchar(50),
      @str1 nvarchar(50),
      @str2 nvarchar(50),
      @str3 nvarchar(50),
      @str4 nvarchar(50)
    AS
    begin
    if((select count(*) from Goods
       where Goods.goodsName like'%'+@str+'%')<=0) 
       begin
       begin
         if(@address=0)
           SELECT  count(*) as total 
           FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
           where  Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
              or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%'     if(@address!=0)
            SELECT  count(*) as total 
            FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
            where  (Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
              or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%'
               and Provinces.provinceID=@address) 
       end
       begin
          if(@page=1 and @address=0)
             SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
              FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
             where  (Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
                    or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%') order by Goods.goodsSearch      if(@page>1 and @address=0)          SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
               FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
              where Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
                    or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%' and Goods.goodsID>(select max(goodsID) from (select top(@amount*(@page-1)) Goods.goodsID from (Provinces INNER JOIN
                           Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID) where Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
                    or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%') as good)
                         order by Goods.goodsSearch       if(@page=1 and @address!=0)
               SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
               FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
              WHERE     (Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
                    or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%' and Provinces.provinceID=@address)
                    order by Goods.goodsSearch      if(@page>1 and @address!=0)           SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
               FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
               where Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
                     or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%' and Goods.goodsID>(select max(goodsID) from (select top(@amount*(@page-1)) Goods.goodsID from (Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID) where Goods.goodsName like'%'+@str1+'%' or Goods.goodsName like'%'+@str2+'%' 
                     or Goods.goodsName like'%'+@str3+'%' or Goods.goodsName like'%'+@str4+'%' and Provinces.provinceID=@address) as good)
                         order by Goods.goodsSearch
    end
    end
    end
    if((select count(*) from Goods
       where Goods.goodsName like'%'+@str+'%')>0) 
      begin
      begin
     if(@address=0)
       SELECT  count(*) as total 
       FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
       where (Goods.goodsName like'%'+@str+'%') 
    if(@address!=0)
      SELECT  count(*) as total 
       FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
       where (Goods.goodsName like'%'+@str+'%' and Provinces.provinceID=@address)
     end
     begin
      if(@page=1 and @address=0)
        SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
         FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
        WHERE     (Goods.goodsName like'%'+@str+'%') order by Goods.goodsSearch if(@page>1 and @address=0)    SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
        FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
        where Goods.goodsName like'%'+@str+'%' and Goods.goodsID>(select max(goodsID) from (select top(@amount*(@page-1)) Goods.goodsID from (Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID) where Goods.goodsName like'%'+@str+'%') as good)
                         order by Goods.goodsSearch  if(@page=1 and @address!=0)
        SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
         FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
        WHERE     (Goods.goodsName like'%'+@str+'%' and Provinces.provinceID=@address)
                   order by Goods.goodsSearch if(@page>1 and @address!=0)    SELECT     TOP (@amount) Provinces.provinceName + '  ' + Cities.cityName AS address, CONVERT(varchar(10), Goods.goodsUpTime, 120) AS goodsUpTime, Provinces.*, 
                          Cities.*, Users.*, Goods.*
        FROM         Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID
        where Goods.goodsName like'%'+@str+'%' and Goods.goodsID>(select max(goodsID) from (select top(@amount*(@page-1)) Goods.goodsID from (Provinces INNER JOIN
                          Cities ON Provinces.provinceID = Cities.provinceID INNER JOIN
                          Users ON Cities.cityID = Users.cityID INNER JOIN
                          Goods ON Users.userID = Goods.userID) where Goods.goodsName like'%'+@str+'%' and Provinces.provinceID=@address) as good)
                         order by Goods.goodsSearch
    end
    end 这个是存储过程.只是一个模糊搜索.同时实现了分页.在查询分析器里能搜出两个表.但愿有人能看懂.