2011-01-03 2 views
0

У меня есть следующий кодMS Access ConnectionString проблема C#

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.

Можете ли вы пожалуйста, руководство мне правильный ConnectionString для этого.

Благодаря Редактировать

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' 

Благодаря

ответ

2

две вещи:

  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 большой ресурс для такого рода информации (имеется страница Access connectionstrings).

+0

Теперь я получаю ошибку Ключевое слово не поддерживается: «поставщик». – Tassadaque

+0

А теперь, я вижу, вы используете 'SqlConnection', который предназначен для баз данных SQL Server, вы должны использовать' OleDbConnection'. Обновит мой ответ. –

+0

См. Обновленный вопрос – Tassadaque

Смежные вопросы