public void f11_Click(object sender, EventArgs e, object obj)
        {
            string[] strArray = str.ToString().Split(',');
            try
            { 
                DataSet ds = new DataSet();
                ds = getAccessDS("select * from [Menu] where ID='" + strArray[1] + "'");
               
                
                dataGridView2.DataSource = ds.Tables[0];
                MessageBox.Show("调用:" + strArray[1]);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
是用传入此方法的参数,做个查询,然后再datagridview中显示出来,代码不报错,也不执行,但是MessageBox.Show("调用:" + strArray[1]);这句始终成功执行,将上面的代码单独写一个方法,可以正常执行。
就是这三句
   DataSet ds = new DataSet();
                ds = getAccessDS("select * from [Menu] where ID='" + strArray[1] + "'");              
                
                dataGridView2.DataSource = ds.Tables[0];用的access,有没有遇到过这个问题的,真心求教!!!! 谢谢了

解决方案 »

  1.   

    你看一下sql语句,然后丢到access里面执行看看效果
      

  2.   

    并非没执行,执行执行了没结果。至于不报错也很简单,getAccessDS方法把异常给吃了。这在新人里很常见,喜欢无端吞异常,不给外面的人看。当然楼上说原本就没有也可能当然还有可能是Bin里的数据不是最新的,ACC是文本数据库,依赖路径。默认是运行程序路径,而非解决方案路径。所以如果你生成选择有问题,那么每次都会用空库覆盖掉。(当然也有人修改解决方案的库,而非运行路径的库,结果也会是,你认为有数据,其实他是空表)
      

  3.   

    http://www.cnblogs.com/alexis/archive/2010/11/06/1870519.html
      

  4.   

    getAccessDS没有问题 问题中已经说明,拉出来单独执行 全都没问题,现在是除了messagebox.show();意外,其他什么代码都执行不了,包括加个textbox,给他的text赋值都没用