保存更改到数据库c# ADO.NET


public EmployeeForm()
{
this.bindingSource = new BindingSource();
this.Load += new EventHandler(EmployeeForm_Load);
}
private void EmployeeForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.connection.Close();
this.connection.Dispose();
}     
private void RetrieveDataFromTheDatabase()
{

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Employee.mdb"";
this.connection = new OleDbConnection(connectionString);
this.connection.Open();
OleDbCommand command = connection.CreateCommand();
command.CommandText = "Select * From Employee";
this.adapter = new OleDbDataAdapter();
this.adapter.SelectCommand = command;
this.dataset = new DataSet();
this.adapter.Fill(dataset, "Employee");  

OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(this.adapter);
commandBuilder.ConflictOption = ConflictOption.OverwriteChanges;
commandBuilder.GetInsertCommand();
commandBuilder.GetDeleteCommand();
commandBuilder.GetUpdateCommand();
}        
private void BindControls()
{
this.bindingSource.DataSource = this.dataset.Tables[0];
this.dgvEmployee.DataSource = this.bindingSource;
}
void FileSave_Click(object sender, EventArgs e)
{
this.adapter.Update(this.dataset, "Employee");

this.dgvEmployee.EndEdit();
this.bindingSource.EndEdit();
}

我想保存所有的数据更改到数据库时,保存按钮被点击。我所拥有的代码不会对数据库进行更改。我还想在成功保存后禁用保存按钮。

您可以让visual studio为您编写所有这些代码,包括保存内容:

  • 确保你在一个。net框架项目中工作-这个过程在core+中有bug,并且部分VS被Microsoft故意禁用
  • 为项目添加数据集类型文件
  • 打开它,右键单击表面,添加…表适配器
  • 通过向导连接您的访问数据库。当出现一个包含文本的大消息框时,按f1键获取有关控制此行为的信息。阅读并理解全文。它说的是"如果您将db复制到您的项目中,它将在运行时再次复制到调试文件夹中。应用程序将更改bin/debug文件夹中的数据库,并且db将在下次构建过程中用新的副本覆盖。这会让你的数据看起来没有保存;这不是真的">
  • 选择返回行
  • 输入SELECT * FROM Employee WHERE id = @id
  • 选择FillById/GetDataById的名称
  • 完成向导
  • 右键单击tableadapter,选择添加查询,添加另一个SELECT * FROM Employee WHERE Name LIKE @name或类似的查询-添加查询是一个好主意,让您只选择某些员工,并进行您想要在应用程序中进行的搜索。"按名称搜索"是一个合理的要求。当要求查询的名称时,输入FillByName/GetDataByName
  • 保存数据集,切换到表单设计器
  • 打开数据源窗口(在视图菜单上)。其他Windows),并将表示Employee表的节点拖到窗体
  • 上。
  • 出现了几个东西;一个导航栏,带有一个输入id、数据集、数据网格、绑定源等的框。你不需要写一行代码,就能把它们组装在一起。所有的代码都在Form1.Designer.cs和Form1.cs(或者你给你的表单起的任何名字)中,类似于你写的
  • 运行应用程序,在框中输入已知的员工id,点击fillbyid。员工出现在网格中。编辑它们的名称,单击导航栏中的保存。打开bin/debug文件夹中的数据库文件,查看更改后的名称
  • 转到Form1的代码视图,将FillById调用更改为FillByName,并删除TextBox内容的整数转换。现在您可以按名称搜索员工,甚至可以搜索%的名称以列出所有员工,因为这是LIKE操作

看看代码是如何连接的;这一切都很简单。你可以添加更多的表到你的数据集,甚至关系,你可以显示相关的数据通过拖出数据源的子节点(不是顶级节点)

如果您厌倦了构建过程总是覆盖您的调试数据库,请在解决方案资源管理器中单击它,并将复制选项从&;Copy always &;和"Copy if newer"。现在,只有当你对项目文件夹中的db进行模式更改(添加表等)时,它才会被复制

最新更新