我在Visual Studio 2017中有一个Windows窗体,只有DataGridView
。
它连接到我桌面上的访问数据库。当我运行程序时,我可以在DataGridView
中插入数据或更新数据。但它不会改变我的访问文件中的任何内容。我认为它只会在程序中更改本地dataset
。
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);
}
我的数据库已更新,但在我的程序本地,我找不到一个解决方案来修改它在文件中。提前感谢您的帮助。
我发现了OleDbCommandBuilder
的内容,但它是在VB .NET中,我真的不知道这个。
答案 0 :(得分:1)
C#中的OleDbDataAdapter示例
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;
}
}