Проблема строки подключения MS Access C # - PullRequest
0 голосов
/ 03 января 2011

У меня следующий код

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 Ответ

2 голосов
/ 03 января 2011

Две вещи:

  1. Вы используете неправильный объект соединения;SqlConnection - для связи с базами данных SQL Server, когда вы пытаетесь общаться с базой данных MS Access.Попробуйте использовать OleDbConnection вместо этого.Это также означает, что вы должны использовать OleDbDataAdapter вместо SqlDataAdapter.
  2. . Строка выглядит немного странно с дополнительными кавычками и пробелами.

Попробуйте вместо этого:

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 является отличным ресурсом для такого рода информации (есть страница для Доступ к строкам подключения ).

...