怎样使datagridview中显示的数据改变的更新到数据库,没改变的不更新到数据库
如题,求助各位大哥!代码如下!我写的这代码时而好用时而不好用,比如说:数据库中有空行6行,我只想改第一行为1,结果6行全変1了,或者说第6行変1了,第一行还是空的。请各位多多指教,我是一个大二的学生,是一个初学生。谢谢了!新年快乐
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OracleClient;
namespace 药局管理系统
{
public partial class Form4 : Form
{
int i;
public static bool isValueChange=false;
private DataTable dt = new DataTable();
private OracleDataAdapter da = new OracleDataAdapter();
public Form4()
{
InitializeComponent();
this.StartPosition = FormStartPosition.CenterScreen;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
dt = dataGridView1.DataSource as DataTable;//把DataGridView绑定的数据源转换成DataTable
OracleCommandBuilder cb = new OracleCommandBuilder(da);
da.Update(dt);
dt.Clear();
da.Fill(dt);
//da.Update((DataTable)bindingSource1.DataSource);
MessageBox.Show("更新成功");
}
private void Form4_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“dataSet4.D04”中。您可以根据需要移动或移除它。
//this.d04TableAdapter.Fill(this.dataSet4.D04);
// TODO: 这行代码将数据加载到表“dataSet4.R20”中。您可以根据需要移动或移除它。
//this.r20TableAdapter.Fill(this.dataSet4.R20);
OracleConnection cn = new OracleConnection("Data Source=orcl;user=ehis;password=Ehis;");
//cn.Open();
OracleCommand com = new OracleCommand("select R01,R02,R03,R04,R06,R07,R08,R10,R11,R12,R13,R14 from R20 ", cn);
da = new OracleDataAdapter(com);
DataTable dt = new DataTable();
//dt.Locale = System.Globalization.CultureInfo.InvariantCulture;
da.Fill(dt);
this.dataGridView1.DataSource = dt;
}