2014-04-25 3 views
0

Моя большая проблема с этим кодом заключается в том, что когда я пытаюсь подключиться к моей базе данных, программа бросает подгонку. Я нажимаю мою кнопку btnSubmit_Click, и она сообщает мне эту ошибку: «Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован на локальной машине». Я поставил свой код ниже. Может ли кто-нибудь помочь мне выяснить, что не так?Подключение к базе данных Microsoft Access с использованием Microsoft Visual Studio?

namespace WindowsFormsApplication5 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void btnSubmit_Click(object sender, EventArgs e) 
     { 
      OleDbConnection Connect; 
      OleDbCommand command; 
      Connect = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\drwi\Desktop\database\Javadata1.accdb"); 
      Connect.Open(); 
      command = Connect.CreateCommand(); 
      command.CommandText = "insert"+txtFirstName.Text+","+txtLastName+"into T_Users;"; 
      Connect.Close(); 
     } 

     private void Display_Click(object sender, EventArgs e) 
     { 
      OleDbConnection Connect; 
      OleDbCommand command; 
      Connect = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\drwi\Desktop\database\Javadata1.accdb"); 
      Connect.Open(); 
      command = Connect.CreateCommand(); 
      command.CommandText = "Select * from T_Users;"; 
      OleDbDataReader read = command.ExecuteReader(); 
      if (read.Read()) 
      { 
       txtOutput.Text = read["UserID"].ToString()+","+read["FirstName"].ToString()+","+read["LastName"].ToString(); 
      } 
      else 
      { 
       MessageBox.Show("Invalid DataBase Connection"); 
      }; 
      Connect.Close(); 
     } 
    } 
} 
+0

Я не использую сервера. Программа просто должна запускаться на основе файла базы данных компьютера. – user3348422

+0

Посмотрите что-то нечетное в 'txtFirstName.Text +", "+ txtLastName +"? Также читайте об атаках SQL-инъекций. –

+0

Возможно, вы все еще не заметили установку MDAC –

ответ

0
command.CommandText = "insert"+txtFirstName.Text+","+txtLastName+"into T_Users;"; 

должен быть

command.CommandText = "insert '" +txtFirstName.Text + "', '" + txtLastName.Text+ "' into T_Users;"; 

(добавить .text)

+2

Хотя это действительно будет следующей проблемой *, с которой сталкивается этот пользователь, это не ответ на заданный здесь вопрос. (Синтаксическая ошибка создавала бы другое исключение, а не исключение «провайдера, не зарегистрированное».) –

+0

@ KenВыберите права, я хотел сфокусироваться, но я сохраняю себя –

+0

Извините за это. –

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