string myConStr = "Provider = Microsoft.Jet.OLEDB.4.0;";
                myConStr += "Data Source = Mydata.mdb;";
                OleDbConnection myCon = new OleDbConnection(myConStr);
                myCon.Open();
                string StrSQL = "select * from data where title like '%@title%'";
                OleDbDataAdapter da = new OleDbDataAdapter(StrSQL, myCon);
                da.SelectCommand.Parameters.AddWithValue("@title", textBox_title.Text);
                DataTable dt = new DataTable();
                da.Fill(dt);
                this.dataGridView1.DataSource = dt;
                myCon.Close();
执行后dataGridView1什么都没有显示,高手帮忙看下哪错了~谢了

解决方案 »

  1.   

    需要连接数据库的程序必须要结合环境的,建议调试一下,取出生成的SQL语句,然后在数据库客户端执行一下,看是否有满足条件的数据.
      

  2.   

    1.
    DataTable dt = new DataTable(); 
                    da.Fill(dt); 
                    this.dataGridView1.DataSource = dt; 
    ---->>DataSet ds = new DataSet(); 
                    da.Fill(ds); 
                    this.dataGridView1.DataSource = ds.Table[0]; 
    2.
    看你的sql是否有数据查询出来~
      

  3.   

    不知道是什么原因啊,郁闷。。
    如果我把上面的                string StrSQL = "select * from data where title like '%@title%'"; 
    改成我数据库中有的一个数据如  string StrSQL = "select * from data where title like '%2'"; 
    就可以检索出数据来,这到底是为什么啊?
      

  4.   

    那就是sql语句的问题,根本就没有查询到记录~
      

  5.   

    呵呵呵
    textBox_title.Text 的值有问题了。
    改为:textBox_title.Text.Trim()
    试试
      

  6.   

    呵呵呵
    还真的没有dataGridView1.DataBind();
      

  7.   

    大哥WINform里面dataGridView1有DataBind属性吗?
    SQl语句有问题应该怎么该呀?
      

  8.   

     string StrSQL = "select * from data where title like '%@title%'"; 改成  string StrSQL = "select * from data where title like '%' + @title + '%'";因为你把参数用''包起来,就不是参数,而是一个字符串了. 
      

  9.   

    bwangel是正解,DataGridview可以用DataSource,不必要DataBind()
      

  10.   

    晕,人家说的是,DataGridview,不是Gridview,麻烦你们看清楚再说好不~~~
      

  11.   

    DataTable dt = new DataTable(); 
    da.Fill(dt); 这个地方有问题,要绑定表名
    DataTable dt = new DataTable(); 
    da.Fill(dt,"data");
      

  12.   

    还有一个问题,就是dataadapter时不需要手动打开和关闭数据库连接,代码应该修改为:
    string myConStr = "Provider = Microsoft.Jet.OLEDB.4.0;"; 
                    myConStr += "Data Source = Mydata.mdb;"; 
                    OleDbConnection myCon = new OleDbConnection(myConStr); 
                    //myCon.Open(); 
                    string StrSQL = "select * from data where title like '%@title%'"; 
                    OleDbDataAdapter da = new OleDbDataAdapter(StrSQL, myCon); 
                    da.SelectCommand.Parameters.AddWithValue("@title", textBox_title.Text); 
                    DataTable dt = new DataTable(); 
                    da.Fill(dt,"data"); 
                    this.dataGridView1.DataSource = dt; 
                    //myCon.Close(); 
      

  13.   

    断点调试把SQL语句取出来看看是不是取道数据!
    PS:很反感一些人看也不看就按着自己的想法胡说八道!
      

  14.   

    很明显你的da.Fill()错了。应该是填充到dataset里面。
    string myConStr = "Provider = Microsoft.Jet.OLEDB.4.0;"; 
                    myConStr += "Data Source = Mydata.mdb;"; 
                    OleDbConnection myCon = new OleDbConnection(myConStr); 
                    myCon.Open(); 
                    string StrSQL = "select * from data where title like '%@title%'"; 
                    OleDbDataAdapter da = new OleDbDataAdapter(StrSQL, myCon); 
                    da.SelectCommand.Parameters.AddWithValue("@title", textBox_title.Text); 
                    dataset ds=new dataset();
                    da.Fill(ds);           
                    this.dataGridView1.DataSource = ds.table[0]; 
                    myCon.Close(); 
      

  15.   


    很显然这么帅哥是正解,楼主可以试下他的方法。其他的都是做的,向楼上的帅哥说非要用dataset,我想问下用dataset和DATATABLE有什么区别吗。
      

  16.   

    string myConStr = "Provider = Microsoft.Jet.OLEDB.4.0;"; 
                    myConStr += "Data Source = Mydata.mdb;"; 
                    OleDbConnection myCon = new OleDbConnection(myConStr); 
                    myCon.Open(); 
                    string StrSQL = "select * from data where title like '%@title%'"; 
                    OleDbDataAdapter da = new OleDbDataAdapter(StrSQL, myCon); 
                    da.SelectCommand.Parameters.AddWithValue("@title", textBox_title.Text); 
                    DataTable dt = new DataTable(); 
                    da.Fill(dt); 
                    this.dataGridView1.DataSource = dt; 
                    this.dataGridView1.DataBind(); 
                    myCon.Close(); 
      

  17.   

    DataGridView1.DataSource="";
    DataGridView1.DataSourceID="";
    DataGridView1.DataBind();
    如果连接数据库和参数传递都对的话,应该可以显示了,我是屡试不爽哈哈~~
      

  18.   

    StrSQL "select title,content from data where title like '%'+@content+'%'" string
    谢谢大家的回复啊,这个是我取断点看到的东西,不是很明白。
    不过按照11楼教我做的方法问题已经解决呵呵,不过楼上的那位还一颗星星,看贴这么不仔细上面说了是在WINFORM里面的dataGridView1不是ASP里面的,呵呵
    但是还是谢谢你的热心回复。