C#DataGridView(使用数据源填充)不保存到数据库

问题描述:

我有一个表单,我想为用户可以从数据库表“用户”删除和编辑(而不是添加)行的目的。我在VS2010中创建了一个表单和一个DataSource,DataSource是使用新的DataSource向导创建的。从这里我拖放DataSourceView窗口中的用户表的DataGridView到窗体。C#DataGridView(使用数据源填充)不保存到数据库

我遇到的问题是,当我运行应用程序时,数据将加载到DataGridView罚款,但是当我删除或编辑一行并单击保存它不会更新数据库。

我是一个新手用户,所以我敢肯定我在做一些愚蠢或天真的事 - 我是否需要在这里添加一些SQL调用?

任何想法?

enter image description here

public partial class EditUsers : Form 
{ 
    public EditUsers() 
    { 
     InitializeComponent(); 
    } 

    private void EditUsers_Load(object sender, EventArgs e) 
    { 
     // TODO: This line of code loads data into the 'debenhamsProjectOfficeDatabaseDataSet.Users' table. You can move, or remove it, as needed. 
     this.usersTableAdapter.Fill(this.debenhamsProjectOfficeDatabaseDataSet.Users); 

    } 

    private void usersBindingNavigatorSaveItem_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      this.Validate(); 
      this.usersBindingSource.EndEdit(); 
      this.tableAdapterManager.UpdateAll(this.debenhamsProjectOfficeDatabaseDataSet); 
      MessageBox.Show("Update successful"); 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
} 

了更加灵活的方式与您的数据库来填充你的数据网格视图是使用一个连接字符串。

在解决方案资源管理器中右键单击您的项目文件并添加一个新项目。添加一个类并将其命名为connection.cs。在这里键入

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Your_Project_Name 
{ 
class Connection 
{ 
    string ConnectionString; 
    public Connection() 
    { 
     ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" + 
     "Data Source=C:/User/somefolder/Your_Database.accdb;Persist Security Info=False;"; 

    } 
    public string getConnection() 
    { 
     return ConnectionString; 
    } 
} 

现在用System.Data.OleDb;你的头在你的Form1的顶部添加。

现在public partial class EditUsers : Form

OleDbConnection connect = new OleDbConnection(); 
     OleDbCommand command = new OleDbCommand(); 
     OleDbDataReader reader; 
     Connection c; 

终于在private void EditUsers_Load

c = new Connection(); 
      connect.ConnectionString = c.getConnection();