C#DataGridView(使用数据源填充)未保存到数据库
我有一个表单,希望用户能够从数据库表“Users”中删除和编辑(而不是添加)行。我在VS2010中创建了一个表单和一个数据源,该数据源是使用NewDataSource向导创建的。从这里,我将DataSource windowstrip中Users表的DataGridView拖放到表单中 我遇到的问题是,当我运行应用程序时,数据将很好地加载到DataGridView中,但当我删除或编辑一行并单击“保存”时,它不会更新数据库 我是一个新手,所以我肯定我做了一些愚蠢或幼稚的事情-我需要在这里添加一些sql调用吗 有什么想法吗C#DataGridView(使用数据源填充)未保存到数据库,c#,database,datagridview,save,datasource,C#,Database,Datagridview,Save,Datasource,我有一个表单,希望用户能够从数据库表“Users”中删除和编辑(而不是添加)行。我在VS2010中创建了一个表单和一个数据源,该数据源是使用NewDataSource向导创建的。从这里,我将DataSource windowstrip中Users表的DataGridView拖放到表单中 我遇到的问题是,当我运行应用程序时,数据将很好地加载到DataGridView中,但当我删除或编辑一行并单击“保存”时,它不会更新数据库 我是一个新手,所以我肯定我做了一些愚蠢或幼稚的事情-我需要在这里添加一些s
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);
}
}
}
使用数据库填充datagrid视图的一种更灵活的方法是使用连接字符串 在解决方案资源管理器中右键单击项目文件并添加新项。添加一个类并将其命名为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添加编码>到表单顶部的标题1
现在在public分部类EditUsers:Form
put中
OleDbConnection connect = new OleDbConnection();
OleDbCommand command = new OleDbCommand();
OleDbDataReader reader;
Connection c;
最后在private void EditUsers\u Load
中键入
c = new Connection();
connect.ConnectionString = c.getConnection();