2017-01-13 2 views
0

У меня есть форма Windows в Visual Studio 2017, всего лишь DataGridView. , который подключен к базе данных доступа на моем рабочем столе. Когда я запускаю свою программу, я могу вставлять данные или обновлять данные в свой DataGridView. Но это ничего не меняет в моем файле доступа. Я думаю, что он просто меняет местный dataset во время программы.Изменение базы данных доступа в DataGridView

private string rq_sql; 
private string cnx; 

private System.Data.OleDb.OleDbConnection oCnx; 
private System.Data.OleDb.OleDbCommand oCmd; 
private System.Data.DataSet oDS; 

private void btn_insert_Click(object sender, EventArgs e) // insert content of textboxs when i click on the button 
{ 
     this.actual_name = this.textBox2.Text; 
     this.actual_phone = this.textBox1.Text; 

     bg_matou = "INSERT INTO Table1(Telphone, Prenom) VALUES ('"+actual_phone+"','"+actual_name+"')"; 
     oCmd = new OleDbCommand(rq_sql, oCnx); 
     oCnx.Open(); 
     oCmd.ExecuteNonQuery(); 
     oCnx.Close(); 
     this.table1TableAdapter.Fill(this.database1DataSet2.Table1); 
} 

Мой Databse хорошо обновляется, но локально на моей программе, я не могу найти решение, чтобы изменить его в файле. Спасибо заранее за любую помощь.

Я нашел что-то около OleDbCommandBuilder, но он находится в VB .NET, и я действительно не знаю об этом.

ответ

1

Пример OleDbDataAdapter в C#

using Microsoft.VisualBasic; 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Data; 
using System.Diagnostics; 
using System.Data.OleDb; 

public class frmDatabase 
{ 
OleDbConnection con = new OleDbConnection(); 
DataSet ds = new DataSet(); 
DataTable dt = new DataTable(); 
OleDbDataAdapter da = new OleDbDataAdapter(); 

private void frmProject_Load(object sender, EventArgs e) 
{ 
    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\xxx\\xxx\\xxx.mdb"; 
    con.Open(); 
    ds.Tables.Add(dt); 
    da = new OleDbDataAdapter("Select * from table", con); 
    da.Fill(dt); 
    dgvDetails.DataSource = dt.DefaultView; 
    con.Close(); 
} 


private void cmdUpdate_Click(object sender, EventArgs e) 
{ 
    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\xxx\\xxx\\xxx.mdb"; 
    con.Open(); 
    ds.Tables.Add(dt); 
    da = new OleDbDataAdapter("Select * from table", con); 
    da.Update(dt); 
    con.Close(); 

} 
public frmDatabase() 
{ 
    Load += frmProject_Load; 
} 
} 
+0

Там только выбрать запросы на вашем Exemple. Будет ли INSERT/UPDATE/DELETE работать и изменять файл доступа? – saperlipopette

+0

Вы можете сделать это с помощью: https://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdataadapter.insertcommand(v=vs.110).aspx. – Svekke

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