代码如下:private string strConnection;
private string mySelectQuery = @"select * from Grade";
private OleDbConnection objConnection;
strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=E:\Application\DBtest.mdb";
objConnection = new OleDbConnection(strConnection);
objConnection.Open();
DataSet ds = new DataSet(); // Dataset is the collection of tables
OleDbDataAdapter da = new OleDbDataAdapter(sql, objConnection);
da.Fill(ds);
在执行到da.Fill(ds)的时候出错,错误是:Data type mismatch in criteria expression.我不知道为什么会这样,还烦高人指点。谢谢先!

解决方案 »

  1.   

    select * from [Grade]
    加上中括号
      

  2.   

    [Quote=引用 1 楼 nongmintian 的回复:]
    把+=还原成完整写法!!
    [/Quote
    怎么还原?
      

  3.   

    错误提示是:标准的数据类型不匹配的表达
    可能是表名吧 select * from [grade] 试下
      

  4.   


    这就是你原始的代码吗?
    这里定义的mySelectQuery : private string mySelectQuery = @"select * from Grade";  为SQL.
    这里又执行sql: OleDbDataAdapter da = new OleDbDataAdapter(sql, objConnection);
    请问你sql的内容是什么呢?给你一个可以正常查询的例子供参考:                string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
                    strConnection += @"Data Source=E:\Data.mdb";
                    OleDbConnection objConnection = new OleDbConnection(strConnection);
                    objConnection.Open();
                    //查询
                    string strSql = "SELECT * FROM TEST";
                    OleDbDataAdapter da = new OleDbDataAdapter(strSql, objConnection);
                    DataSet ds = new DataSet();
                    da.Fill(ds);
      

  5.   

    谢谢!在表名上加上[]后问题解决了,可为什么这样呢?这和连接数据库的方式有关系吗?还是对某一个数据库比如access就只是这样的呢? 回复后立马结帐。