//查询排量方法
        private void Selpinpai(string pai)
        {
            
            string sql =string.Format("select * from carsinfo where discharge='%{0}%'",pai);
            try
            {
                DataSet ds = new DataSet();
                SqlDataAdapter adapter = new SqlDataAdapter(sql,DBHelper.connection);
                DBHelper.connection.Open();
                
                adapter.Fill(ds,"CarsInfo");
                
                datagridview1.DataSource =ds.Tables["CarsInfo"];
                
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
            finally
            {
                DBHelper.connection.Close();
            }        }我想查询并显示在DataGridview中,但是调试这个方法,发现ds为空,不知道哪里写的不对了

解决方案 »

  1.   

    先确定 sql 是否查到数据,到数据库查查看看
      

  2.   


    select * from carsinfo where discharge='pai';执行先确定有没有资料.有则再确认程序写法问题。
      

  3.   

    发现你这个顺序有问题:  SqlDataAdapter adapter = new SqlDataAdapter(sql,DBHelper.connection);
      DBHelper.connection.Open();
    应该是这样的吧?  DBHelper.connection.Open();//先打开数据库链接
      SqlDataAdapter adapter = new SqlDataAdapter(sql,DBHelper.connection);//再过查询操作
      

  4.   

    {System.Data.DataSet}调试的时候这个为空,把打开数据库连接放在前面也不成,刚才那个sql我把%%去了也不成
      

  5.   

    SqlConnection ConnSql=new SqlConnection (strConn); //Sql链接类的实例化
    ConnSql.Open ();//打开数据库debug点进 DBHelper.connection看是否已经Open=true?
    如果不成功,肯定不行.
      

  6.   


    确定了,这个也没有问题 //查询排量方法
            private void Selpinpai(string pai)
            {
                
                string sql =string.Format("select * from carsinfo where discharge like '%{0}%'",pai);
                try
                {
                    DataSet ds = new DataSet();
                    DBHelper.connection.Open();
                    SqlDataAdapter adapter = new SqlDataAdapter(sql,DBHelper.connection);
                    
                    
                    adapter.Fill(ds,"CarsInfo");
                    datagridview1.Rows.Clear();
                    datagridview1.Columns.Clear();
                    for (int m = 0; m < ds.Tables[0].Columns.Count; m++)
                    {
                        datagridview1.Columns.Add(ds.Tables[0].Columns[m].ToString(),ds.Tables[0].Columns[m].ToString());
                    }

                        datagridview1.DataSource = ds.Tables["CarsInfo"];
                }
                catch (Exception ex)
                {
                    Console.Write(ex.Message);
                }
                finally
                {
                    DBHelper.connection.Close();
                }
            }我在网上找了一个这个,先清空在循环写入到DataGridview,数据读取出来了,但是我发现多了好多同样的列和行,这个应该怎么调节
      

  7.   

     datagridview1.DataSource =ds.Tables["CarsInfo"];后面+上 datagridview1.databind();