问题描述
vs2008的winform,使用控件datagridview,数据库使用的是oracle数据库,应该怎么实现在datagridview里修改数据,更新到数据库,刷新后显示新的表,求代码,代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingSystem.Data.OracleClient;namespaceyonghu{publicpartialclassForm2:Form{privateSqlDataAdapterSDA=newSqlDataAdapter();privateDataTabledt=newDataTable();privateDataSetds1=newDataSet();privateOracleDataAdapterda1=newOracleDataAdapter();publicintindex1;publicForm2(){InitializeComponent();}privatevoidForm2_Load(objectsender,EventArgse){stringconnection="DataSource=orcl;PersistSecurityInfo=True;UserID=test;Password=cyg";OracleConnectioncoon=newOracleConnection(connection);OracleCommandcmd=newOracleCommand("selectname,ID,sex,habby,birthday,emailfromUSERS",coon);da1.SelectCommand=cmd;da1.Fill(dt);dataGridView1.DataSource=dt;}privatevoidquxiao_Click(objectsender,EventArgse){this.Hide();//Form2隐藏newForm1().ShowDialog();//Form1showthis.Close();}privatevoidshuaxin_Click(objectsender,EventArgse){stringconnection="DataSource=orcl;PersistSecurityInfo=True;UserID=test;Password=cyg";OracleConnectioncoon=newOracleConnection(connection);coon.Open();OracleCommandcmd=newOracleCommand("selectname,ID,sex,habby,birthday,emailfromUSERS",coon);DataSetds1;ds1=newDataSet();OracleDataAdapterda1=newOracleDataAdapter(cmd);da1.Fill(ds1);DataTabledt=ds1.Tables[0];if(dt==null){MessageBox.Show("数据库为空!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);return;}else{for(inti=0;i<dt.Rows.Count;i++){}this.dataGridView1.DataSource=ds1.Tables[0];this.dataGridView1.Refresh();}coon.Close();}privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse){}privatevoidDataGridview1_SelectionChanged(objectsender,EventArgse){index1=dataGridView1.CurrentRow.Index;}privatevoiduSERSBindingSource_CurrentChanged(objectsender,EventArgse){}privatevoidshanchu_Click(objectsender,EventArgse){foreach(DataGridViewRowrindataGridView1.SelectedRows){dataGridView1.Rows.Remove(r);}}privatevoidxiugai_Click(objectsender,EventArgse){SqlCommandBuilderbuilder=newSqlCommandBuilder(SDA);SDA.Update(ds1,"users");}}}
解决方案
解决方案二:
有个ReadOnly属性吧,配合后台事件就行了
解决方案三:
引用1楼wc_ling的回复:
有个ReadOnly属性吧,配合后台事件就行了
刚开始学,实现这个功能用什么语句好呢