private void but_login_Click(object sender, EventArgs e)
  {
  string constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\程序练习\\database\\data.accdb;Persist Security Info=False  ";
  OdbcCommand comm = new OdbcCommand();
  OdbcConnection conn = new OdbcConnection();
  conn.ConnectionString = constring;
  comm.Connection = conn;
  conn.Open();
  comm.CommandText = "select * from user where user_name="+teb_username.Text +"and user_password="+teb_password.Text;
  OdbcDataReader reader = new OdbcDataReader();
  reader = comm.ExecuteReader();
  if (reader.HasRows)
.........
在conn.open();中出现错误,提示ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

解决方案 »

  1.   

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\教学\HandsOn\DesignPattern\SimpleFactory\SF.mdb;User Id=admin;Password=;这是我在配置文件写的字符串,你比较一下啊
      

  2.   

    \\data.accdbaccess应该是mdb结尾吧?
      

  3.   

    应该是你的连接字符串有问题  access数据库的后缀名是mdb吧 还有就是把persist security Info设置为True试一试
      

  4.   

    建议:
    在web.config/app.config中定义
    <add key="DatabaseType" value="Oledb"/>
    <add key="ConnectionString" value="provider=microsoft.jet.oledb.4.0;Data Source="/>
        <add key="dbpath" value="~/database/mydb.mdb"/>在程序中使用,不要使用绝对路径,尽量使用相对路径;
    你的问题:
    前面定义:Microsoft.Jet.OLEDB.4.0
    后面使用:OdbcCommand comm = new OdbcCommand();
             OdbcConnection conn = new OdbcConnection();

    更改为OleDbConnection 就可以了
      

  5.   

    你的问题:
    前面定义:Microsoft.Jet.OLEDB.4.0
    后面使用:OdbcCommand comm = new OdbcCommand();
    OdbcConnection conn = new OdbcConnection();
    更改为 OleDbConnection ,OleDbCommand就可以了。OLEDB和ODBC是不同的数据源驱动方法
      

  6.   

    驱动错误了”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\Database.accdb“
      

  7.   

    accdb.是可不是ACCESS的后缀.access的后缀是mdb
      

  8.   


    替换之后,现在提示找不到'E:\程序练习\database\data.mdb'。
      

  9.   

    连接字符串问题string constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\程序练习\\database\\data.accdb;Persist Security Info=False ";//看你的数据库是否存在,路径!!!
      

  10.   

    都跟你說了這個是ACCESS2007的文件,驅動是Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\Database.accdb
    用Microsoft.Jet.OLEDB.4.0是連部上去的
      

  11.   


    驱动也已经替换了,但是提示找不到文件 'E:\程序练习\database\data.mdb'。
    之后将data.mdb 改写为data.accdb,不再提示驱动错误,但是提示from 子句有问题,但是我看不出有什么错误的地方
      

  12.   

    select * from [user] where [user_name]="+teb_username.Text +"and user_password="+teb_password.Text;
    這樣试下
      

  13.   

    检查你的路径有文件?驱动版本
    把07版本的存成03的 路径为“E:\程序练习\database\data.mdb”string conStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\程序练习\database\data.mdb;Persist Security Info=False";
      

  14.   

    我是这样改写的:
    select * from [user] where [user_name]="+teb_username.Text +"and [user_password]="+teb_password.Text
    但是提示至少一个参数没有被指定值
      

  15.   

    select * from [user] where [user_name]='"+teb_username.Text +"'and [user_password]='"+teb_password.Text+"'";
    缺少單引號,多看看SQL語言,這是基礎
      

  16.   

    LZ,如果SQL不熟悉,你在ACCESS里面先做一遍查询试试啊。