新手求C# VS2010中dataGridView控件更改Access数据库MDB文件的实例
展开全部
懒得写,自己写过的,复制给你看一下:数据库连接语句我就省去了,下面是在Grid里修改语句后保存按钮的语句,修改后你要保存一下.
//保存修改数据按钮
private void button4_Click(object sender, EventArgs e)
{
//提示是否修改
#region//--------修改数据就将数据保存并显示
if (MessageBox.Show("是否保存数据?", "系统消息", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
#region ..........这里是保存数据代码
//结束编辑
dataGridView2.EndEdit();
//重新用表格数据填充数据容器
OleDbDataAdapter Ada = new OleDbDataAdapter();
DataTable table = (DataTable)dataGridView2.DataSource;
//重新启动连接
String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "/驱动.mdb";
//用Buider方法更新数据
using (OleDbConnection connection = new OleDbConnection(ConnectionString))
{
Ada.SelectCommand = new OleDbCommand("SELECT * FROM 类别", connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(Ada);
Ada.UpdateCommand = builder.GetUpdateCommand();
try
{
//更新数据表数据时
Ada.Update(table);
table.AcceptChanges();
MessageBox.Show("操作已成功!数据将全部被保存......", "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
}
catch (System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.Message);
}
}
#endregion
}
#endregion
#region //--------不修改就初始化显示以前数据
else
{
MessageBox.Show("用户取消操作,数据将恢复到初始状态......");
OleDbConnection A = new OleDbConnection();
A.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "/驱动.mdb";
try
{
A.Open();
DataSet B = new DataSet();
string sqlStr = "Select * from 类别";
OleDbDataAdapter C = new OleDbDataAdapter(sqlStr, A);
C.Fill(B);
dataGridView2.DataSource = B.Tables[0];
}
catch (System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.Message);
}
finally
{
A.Close();
}
}
#endregion
}
//保存修改数据按钮
private void button4_Click(object sender, EventArgs e)
{
//提示是否修改
#region//--------修改数据就将数据保存并显示
if (MessageBox.Show("是否保存数据?", "系统消息", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
#region ..........这里是保存数据代码
//结束编辑
dataGridView2.EndEdit();
//重新用表格数据填充数据容器
OleDbDataAdapter Ada = new OleDbDataAdapter();
DataTable table = (DataTable)dataGridView2.DataSource;
//重新启动连接
String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "/驱动.mdb";
//用Buider方法更新数据
using (OleDbConnection connection = new OleDbConnection(ConnectionString))
{
Ada.SelectCommand = new OleDbCommand("SELECT * FROM 类别", connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(Ada);
Ada.UpdateCommand = builder.GetUpdateCommand();
try
{
//更新数据表数据时
Ada.Update(table);
table.AcceptChanges();
MessageBox.Show("操作已成功!数据将全部被保存......", "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
}
catch (System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.Message);
}
}
#endregion
}
#endregion
#region //--------不修改就初始化显示以前数据
else
{
MessageBox.Show("用户取消操作,数据将恢复到初始状态......");
OleDbConnection A = new OleDbConnection();
A.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "/驱动.mdb";
try
{
A.Open();
DataSet B = new DataSet();
string sqlStr = "Select * from 类别";
OleDbDataAdapter C = new OleDbDataAdapter(sqlStr, A);
C.Fill(B);
dataGridView2.DataSource = B.Tables[0];
}
catch (System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.Message);
}
finally
{
A.Close();
}
}
#endregion
}
展开全部
需要在工程里引入你的MDB文件,如果不是,需要看一下你的MDB文件是不是只读
更多追问追答
追问
不是只读的,是我VS代码问题,每次.Update()都出问题
追答
你的工程里引用你的这个MDB文件了么
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要绑定了数据源才能修改access里的数据呀~
更多追问追答
追问
我建立了一个本地的Data.mdb文件,修改dataGridView控件中的DataSouce属性指向我的数据表User,发现可以读取,但是修改时.Update()出现问题,没有办法之下,求实例。我需要知道流程跟方法。
追答
你是VS 直接绑定的数据源么?得看你如何绑定数据源的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询