2017-01-13 10 views
0

Ich habe ein Windows Form in Visual Studio 2017, mit nur einem DataGridView. ist mit einer Access-Datenbank auf meinem Desktop verbunden. Wenn ich mein Programm starte, kann ich Daten in meine DataGridView einfügen oder aktualisieren. Aber es ändert nichts in meiner Zugangsdatei. Ich denke, es ändert nur die lokale dataset während des Programms.Ändern einer Access-Datenbank in einem 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); 
} 

Mein databse ist gut aktualisiert, aber lokal auf meinem Programm, kann ich nicht eine Lösung zu modifizieren, in der Datei finden. Vielen Dank im Voraus für jede Hilfe.

Ich habe etwas über OleDbCommandBuilder gefunden, aber es ist in VB .NET, und ich weiß nicht wirklich darüber.

Antwort

1

Beispiel für OleDbDataAdapter in 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

Es werden nur Anfragen auf Ihrem exemple wählen. Würde ein INSERT/UPDATE/DELETE funktionieren und die Zugangsdatei modifizieren? – saperlipopette

+0

Sie können es tun mit: https://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdataadapter.insertcommand(v=vs.110).aspx. – Svekke

Verwandte Themen