2013-03-23 2 views
2

Я любитель в использовании библиотеки OleDb, и я хочу добавить текстовое поле текстовой формы в базу данных с этой библиотекой. Мой код:Добавление данных в базу данных с использованием доступа к Microsoft и OleDb в C#

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    private OleDbConnection conn = new OleDbConnection(); 
    private void button1_Click(object sender, EventArgs e) 
    { 
     conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project\Learning\Visual C#\Form\WindowsFormsApplication1\WindowsFormsApplication1\Test.mdb"; 
     string NAME = textBox1.Text; 
     conn.Open(); 
     OleDbCommand cmmd = new OleDbCommand("INSERT into student(NAME)" + "VALUES(@NAME)", conn); 
     if (conn.State == ConnectionState.Open) 
     { 
      cmmd.Parameters.Add("@NAME", OleDbType.Char, 20); 
      cmmd.Parameters["@NAME"].Value = NAME; 
      try 
      { 
       cmmd.ExecuteNonQuery(); 
       MessageBox.Show("DATA ADDED"); 
       conn.Close(); 
      } 
      catch (OleDbException expe) 
      { 
       MessageBox.Show(expe.Source); 
      } 
     } 
     else 
     { 
      MessageBox.Show("CON FAILED"); 
     } 
    } 
} 

Но не работает. Я не могу найти хорошую ссылку для команды «OleDbCommand» для C#. Как я могу использовать эту команду в своем коде?

+0

Что не работает? В какой строке вы получаете исключение и каково исключение? – JMK

+0

В моей попытке поймать, поместить код в раздел catch и показать «Microsoft Database Database Engine» в Message Box.What не так? –

+0

да, но такой же результат! –

ответ

5

Решенные

public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     OleDbConnection conn = new OleDbConnection(); 
     conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project\Learning\Visual C#\Form\WindowsFormsApplication2\WindowsFormsApplication2\Test.mdb"; 
     conn.Open(); 
     string Name = textBox1.Text; 
     OleDbCommand cmmd = new OleDbCommand("INSERT INTO table1 (student) Values(@Name)", conn); 
     if (conn.State == ConnectionState.Open) 
     { 
      cmmd.Parameters.Add("@Name", OleDbType.VarWChar, 20).Value = Name; 
      try 
      { 
       cmmd.ExecuteNonQuery(); 
       MessageBox.Show("DATA ADDED"); 
       conn.Close(); 
      } 
      catch (OleDbException expe) 
      { 
       MessageBox.Show(expe.Message); 
       conn.Close(); 
      } 
     } 
     else 
     { 
      MessageBox.Show("CON FAILED"); 
     } 
    } 
+0

Приятно видеть, что вы решили это, если подождать немного, пока вы можете отметить это как ответ. Хорошее кодирование :) – JMK

3

Может быть, этот код может помочь вам

 OleDbConnection dbConnection = new OleDbConnection(CONNECTION_STRING); 

     string commandString = 
     "INSERT INTO MeetingEntries (Subject, Location, Start Date, End Date, Enable Alarm, Repeat Alarm, Reminder, Repetition Type)" + " VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; 

     OleDbCommand commandStatement = new OleDbCommand(commandString, dbConnection); 

     commandStatement.Parameters.Add("@Subject", OleDbType.VarWChar, 30).Value = currentEntry.Subject; 
     commandStatement.Parameters.Add("@Location", OleDbType.VarWChar, 50).Value = currentEntry.Location; 
     commandStatement.Parameters.Add("@Start Date", OleDbType.Date, 40).Value = currentEntry.StartDateTime.Date; 
     commandStatement.Parameters.Add("@End Date", OleDbType.Date, 40).Value = currentEntry.EndDateTime.Date; 
     commandStatement.Parameters.Add("@Enable Alarm", OleDbType.Boolean, 1).Value = currentEntry.IsAlarmEnabled; 
     commandStatement.Parameters.Add("@Repeat Alarm", OleDbType.Boolean, 1).Value = currentEntry.IsAlarmRepeated; 
     commandStatement.Parameters.Add("@Reminder", OleDbType.Integer, 2).Value = currentEntry.Reminder; 
     commandStatement.Parameters.Add("@Repetition Type", OleDbType.VarWChar, 10).Value = currentEntry.Repetition; 

     dbConnection.Open(); 
     commandStatement.ExecuteNonQuery(); 
Смежные вопросы