private void button1_Click(object sender, EventArgs e)
     {
           string str = "Provider = SQLOLEDB;server = '(local)';database=开奖数据;integrated security = true";
           OleDbConnection con = new OleDbConnection(str);                
           con.Open();  //报错:没有可用的错误消息           
      }我桌面上有一个Access文件,文件名是:开奖数据
为什么报错呢?

解决方案 »

  1.   

    private void button1_Click(object sender, EventArgs e)
      {
      string str = "Provider = SQLOLEDB;server = '(local)';database=c:\\documents and settings\\username\\桌面\\开奖数据.mdb;integrated security = true";
      OleDbConnection con = new OleDbConnection(str);   
      con.Open(); //报错:没有可用的错误消息   
      }
      

  2.   


    access连接字符串
      

  3.   


    我复制了桌面的文件地址:
    C:\Documents and Settings\Administrator\桌面然后写:
    string str = "Provider = SQLOLEDB;server = '(local)';database=C:\\Documents and Settings\\Administrator\\桌面\\开奖数据.mdb;integrated security = true";
    其他没改,为什么还是错呢
      

  4.   

    一般都是
    Provider=Microsoft.Jet.OLEDB.4.0; 这样的吧
      

  5.   

    我改成Provider=Microsoft.Jet.OLEDB.4.0; 了,
    出现了新的错误:
    多步LOE DB操作产生错误。如果可能,请检查每一个LOE DB状态值........
      

  6.   

    LZ是在aspx页面中配置的么,还是winform窗体里的
      

  7.   

    access不能使用
    Provider = SQLOLEDB;
    只能使用
    Provider=Microsoft.Jet.OLEDB.4.0;另外,你的文件不应该放在桌面上,每个人帐号的桌面是不同的,还要注意,读取数据的sql语句写法
      

  8.   

    还有你的SQL语句的字段名是不是有些设置了关键字的名字了,如果是,用[]括起来,避免出错
      

  9.   

    错误出在con.Open();
    多步OLE DB操作产生错误,如果可能,请检查每个OLE DB状态值
      

  10.   


    private void button1_Click(object sender, EventArgs e)
      {
      string str = "Provider=Microsoft.Jet.OleDb.4.0;";
      str += "Data Source=";
      str += Directory.GetCurrentDirectory() + (@"\开奖数据.mdb");
      OleDbConnection con = new OleDbConnection(str);  
      con.Open(); //报错:没有可用的错误消息  
      }
      

  11.   

    路径不见得需要全路径  但是一定要有然后就是 最好用英文的  别用汉字最后就是 记得给access数据库赋权限
      

  12.   

    赋权限,咋赋啊,怎么这么麻烦啊,比sql server还麻烦啊
      

  13.   

    string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\OnlineMarket.mdb";  
    数据库与执行程序在同一个目录下 
      

  14.   

    为了方便,右击右边 WindowsApplication1(我没命名),然后添加现有项,添加后会弹出一个消息框,不用管它,然后用我上面的语句就能连通
      

  15.   

    其实还有这些方法http://topic.csdn.net/t/20030110/15/1346650.html
    不知对LZ有用不
      

  16.   

    你说的这个 WindowsApplication1是哪里的啥东西?我是要在代码中实现连接Access数据库
      

  17.   

    我这是要你在这里搞,先添加了你的mdb文件,然后再用我给的那语句就能连通
    http://hi.csdn.net/space-8848128-do-album-picid-835569.html 去我这看
      

  18.   

    private OleDbConnection dbconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=数据库名");        public string data_ADD(string strSQL)
            {
                dbconn.Open();
                try
                {
                    OleDbCommand cmd = dbconn.CreateCommand();
                    string StrSQL = strSQL;
                    cmd.CommandText = StrSQL;
                    cmd.CommandType = CommandType.Text;
                    OleDbDataReader reader = cmd.ExecuteReader();
                    dbconn.Close();                return "操作成功!";            }
                catch (Exception Err)
                {
                    string strMessage = "操作失败:" + Err.Message;
                   
                    //如果打开了连接,则关闭它
                    if (dbconn.State == ConnectionState.Open)
                    {
                        dbconn.Close();
                    }
                    return strMessage;
                }
            }
      

  19.   

    把数据库直接放在BIN文件里面~直接写数据库加扩展名就OK
    private OleDbConnection dbconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=databen.mdb");
      

  20.   

    免得麻烦了
    string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ASPPPPPPPPPPPPPP\CSDNCSDN例子\6-15\OnlineMarket.mdb";直接 Data Source 那里写上你数据库的路径就行,刚才我自找麻烦了!
      

  21.   

    我是这样写的:
    string str = "Provider = Microsoft.Jet.OLEDB.4.0;server = '(local)';database=C:\\Documents and Settings\\Administrator\\桌面\\开奖数据.mdb;integrated security = true";
    OleDbConnection con = new OleDbConnection(str);                
    con.Open();
    就是报错
      

  22.   

    你将这个 
    string str = "Provider = Microsoft.Jet.OLEDB.4.0;server = '(local)';database=C:\\Documents and Settings\\Administrator\\桌面\\开奖数据.mdb;integrated security = true";
    改成string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\开奖数据.mdb;";
    就可以了
    因为有了个@ ,所以不需要再用 \\这种方式
      

  23.   


    诶!!好像行了,...先用着吧,以后再好好学一下ADO.NET操作Access谢谢啊!!
      

  24.   

    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\dbxc.mdb");
    按这个写,
    或者直接在 vs里自己添加数据库  然后 在属性里查找连接字符串啊~