MS Access Connectionstring问题C#

时间:2011-01-03 10:57:08

标签: c# ms-access connection-string ms-access-2007

我有以下代码

mycon=new SqlConnection();
mycon.ConnectionString="'Provider =Microsoft.ACE.OLEDB.12.0';Data Source='G:\\Abbriviations\\Abbriviations\\App_Data\\abbreviations.accdb'";

myds=new DataSet();
mytable = new DataTable("Abbriviations");
myds.Tables.Add(mytable);
myadap=new SqlDataAdapter();

我收到以下错误。

初始化字符串的格式不符合从索引0开始的规范。

请您指导正确的连接字符串。

由于 修改

public class dataManipulationClass
    {
        public OleDbConnection mycon;
        public DataSet myds;
        public DataTable mytable;
        public SqlDataAdapter myadap;
        public OleDbCommand mycomm;     

        public bool ManupulateData()
        {
            mycon = new OleDbConnection();          
            mycon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\\Abbriviations\\Abbriviations\\App_Data\\abbreviations.accdb";

            myds=new DataSet();
            mytable = new DataTable("Abbriviations");
            myds.Tables.Add(mytable);
            myadap=new SqlDataAdapter();

            mycomm=new OleDbCommand();
            mycomm.CommandType=CommandType.Text;
            mycomm.CommandText = "SELECT * FROM Abbriviations";
            mycomm.Connection=mycon;
            myadap.SelectCommand=mycomm;

            return true;
        }
    }

现在我在mycommm上收到以下错误。

Cannot implicitly convert type 'System.Data.OleDb.OleDbCommand' to 'System.Data.SqlClient.SqlCommand'

由于

1 个答案:

答案 0 :(得分:2)

两件事:

  1. 您使用的是错误的连接对象;当您尝试与MS Access数据库通信时,SqlConnection用于与SQL Server数据库通信。请尝试使用OleDbConnection。这也意味着您应该使用OleDbDataAdapter而不是SqlDataAdapter
  2. 字符串看起来有点奇怪,加上引号和空格。
  3. 请改为尝试:

    mycon=new OleDbConnection();
    mycon.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\\Abbriviations\\Abbriviations\\App_Data\\abbreviations.accdb";
    // and then the rest of your code
    

    作为旁注,connectionstrings.com是此类信息的绝佳资源(Access connectionstrings有一页)。