非常着急,关于winform里datagridview的问题
datagridview里面数据修改后,如何自动保存到数据库?
我用的是access 2003
private void gridMain_CurrentCellChanged(object sender, EventArgs e)
{
Validate();
mainBindingSource.EndEdit();
mainTableAdapter.Update(pricingDataSet.Main);
}
该段代码不起作用,数据并没有保存到数据库中
------解决方案--------------------http://community.csdn.net/Expert/topic/5252/5252439.xml?temp=.9005243
------解决方案--------------------Adapter.update
------解决方案--------------------你不会是修改一条保存一条吧...
这样效率也太低了一点吧...
最好的做法是都修改完了,比如单击一个 "更新 "按钮,再保存到数据库中...
------解决方案--------------------给你个例子,如果你有MSDN,请直接看:
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxmclictl/html/1660f69c-5711-45d2-abc1-e25bc6779124.htm
这个例子讲得很清楚了..
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
private DataGridView dataGridView1 = new DataGridView();
private BindingSource bindingSource1 = new BindingSource();
private SqlDataAdapter dataAdapter = new SqlDataAdapter();
private Button reloadButton = new Button();
private Button submitButton = new Button();
[STAThreadAttribute()]
public static void Main()
{
Application.Run(new Form1());
}
// Initialize the form.
public Form1()
{
dataGridView1.Dock = DockStyle.Fill;
reloadButton.Text = "reload ";
submitButton.Text = "submit ";
reloadButton.Click += new System.EventHandler(reloadButton_Click);
submitButton.Click += new System.EventHandler(submitButton_Click);
FlowLayoutPanel panel = new FlowLayoutPanel();
panel.Dock = DockStyle.Top;
panel.AutoSize = true;
panel.Controls.AddRange(new Control[] { reloadButton, submitButton });
this.Controls.AddRange(new Control[] { dataGridView1, panel });
this.Load += new System.EventHandler(Form1_Load);
this.Text = "DataGridView databinding and updating demo ";
}
private void Form1_Load(object sender, System.EventArgs e)
{
// Bind the DataGridView to the BindingSource
// and load the data from the database.
dataGridView1.DataSource = bindingSource1;
GetData( "select * from Customers ");
}
private void reloadButton_Click(object sender, System.EventArgs e)
{
// Reload the data from the database.
GetData(dataAdapter.SelectCommand.CommandText);
}
private void submitButton_Click(object sender, System.EventArgs e)
{
// Update the database with the user 's changes.
dataAdapter.Update((DataTable)bindingSource1.DataSource);
}
private void GetData(string selectCommand)
{
try
{
// Specify a connection string. Replace the given value with a
// valid connection string for a Northwind SQL Server sample