DataGridView中数据存入数据库方法

上传人:wu****ei 文档编号:133199743 上传时间:2022-08-09 格式:DOCX 页数:7 大小:21.85KB
收藏 版权申诉 举报 下载
DataGridView中数据存入数据库方法_第1页
第1页 / 共7页
DataGridView中数据存入数据库方法_第2页
第2页 / 共7页
DataGridView中数据存入数据库方法_第3页
第3页 / 共7页
资源描述:

《DataGridView中数据存入数据库方法》由会员分享,可在线阅读,更多相关《DataGridView中数据存入数据库方法(7页珍藏版)》请在装配图网上搜索。

1、DataGridView做了新的数据显示控件加入到了.Net 05中,其强大的编辑能力让其成为了数据显示中必不可少的控件。目前对于DataGridView中的更新讲的挺多的,但直接的插入数据好像讲的不是太多,下面就以我的例子说明一下。、首先新建一个项目。、建立一个数据库连接类LinkDataBase。因为数据库操作有很多都是重复性工作,所以我们写一个类来简化对数据库的操作。 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Data.SqlClient;usingS

2、ystem.Data.Sql;namespaceTest . classLinkDataBase . /设置连接字符串 privatestringstrSQL; /与数据库连接 privatestringconnectionString=DataSource=Localhost;InitialCatalog=Test;IntegratedSecurity=True; privateSqlConnectionmyConnection; privateSqlCommandBuildersqlCmdBld; privateDataSetds=newDataSet(); privateSqlDataA

3、dapterda; publicLinkDataBase() . /根据输入的SQL语句检索数据库数据 publicDataSetSelectDataBase(stringtempStrSQL,stringtempTableName) . this.strSQL=tempStrSQL; this.myConnection=newSqlConnection(connectionString); this.da=newSqlDataAdapter(this.strSQL,this.myConnection); this.ds.Clear(); this.da.Fill(ds,tempStrSQL)

4、; /返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名 returnds; /数据库数据更新(传DataSet和DataTable的对象) publicDataSetUpdateDataBase(DataSetchangedDataSet,stringtableName) . this.myConnection=newSqlConnection(connectionString); this.da=newSqlDataAdapter(this.strSQL,this.myConnection); this.sqlCmdBld=newSqlCommandBu

5、ilder(da); this.da.Update(changedDataSet,tableName); /返回更新过的数据库表 returnchangedDataSet; /检索数据库数据(传字符串,直接操作数据库) publicDataTableSelectDataBase(stringtempStrSQL) . this.myConnection=newSqlConnection(connectionString); DataSettempDataSet=newDataSet(); this.da=newSqlDataAdapter(tempStrSQL,this.myConnectio

6、n); this.da.Fill(tempDataSet); returntempDataSet.Tables0; /数据库数据更新(传字符串,直接操作数据库) publicintUpdateDataBase(stringtempStrSQL) . this.myConnection=newSqlConnection(connectionString); myConnection.Open(); SqlCommandtempSqlcommand=newSqlCommand(tempStrSQL,this.myConnection);intintNumber=tempSqlcommand.Exe

7、cuteNonQuery(); myConnection.Close(); returnintNumber; 上面这段代码很容易理解。大大的简化了我们的操作。、建立一个DataGridView控件,将其命名。(我这里把他命名成:dgv_type)。再加入一个Combobox控件来实现定位到某格时出现下拉列表框。其实DataGridView具有DataGridViewCombobxColumn属性,但这样做出来的下拉框不如绑定一个Combobox控件美。、下面进行代码绑定将数据表Sex中的Sex字段传给Combobox做为Item使用。 publicvoidBindType() . string

8、tempStrSQL=selectSexfromSex; tempDataTable=link.SelectDataBase(tempStrSQL); for(inti=0;i.。所以为了良好的习惯最好还是加上.Trim()。 privatevoidcmb_sex_SelectedIndexChanged(objectsender,EventArgse) .if(ComboBox)sender).Text.Trim()=男) . if(dgv_type.CurrentCell!=null) . dgv_type.CurrentCell.Value=男; dgv_type.CurrentCell

9、.Tag=1; if(ComboBox)sender).Text.Trim()=女).if(dgv_type.CurrentCell!=null).dgv_type.CurrentCell.Value=女;dgv_type.CurrentCell.Tag=2;、建立DataGridView的DataBindingComplete事件,用来显示单元格内的值 privatevoiddgv_type_DataBindingComplete(objectsender,DataGridViewBindingCompleteEventArgse) . for(inti=0;ithis.dgv_type.R

10、ows.Count;i+) .if(dgv_type.Rowsi.Cells1.Value!=null&dgv_type.Rowsi.Cells1.ColumnIndex=1).dgv_type.Rowsi.Cells1.Tag=dgv_type.Rowsi.Cells1.Value.ToString();if(dgv_type.Rowsi.Cells1.Value.ToString()=1).dgv_type.Rowsi.Cells1.Value=男;elseif(dgv_type.Rowsi.Cells1.Value.ToString()=2).dgv_type.Rowsi.Cells1.

11、Value=女;、最后把所有的事件放到Load中 privatevoidForm1_Load(objectsender,EventArgse) . BindType();cmb_sex.SelectedIndexChanged+=newEventHandler(cmb_sex_SelectedIndexChanged);this.dgv_type.Controls.Add(cmb_sex);现在可以在表中输入数据了。输入数据后呢,当然我们要把他们保存到数据库内。、建立一个Button控件来实现数据的保存。其中使用了一个rowMax来记录DataGridView中输入数据的最大行号。因为在保存后

12、有时还要继续向表内输入数据,这样做可以记录下先前保存时的最大行号,避免重复输入数据的错误。(好像Adapter.updata()可以更新,但我不会。这里也希望请教一下) privatevoidbtn_save_Click(objectsender,EventArgse) . stringtempStrSQL; /rowMax为当前DataGridView中最大行号 for(inti=rowMax;rowMaxthis.dgv_type.Rows.Count;rowMax+) . if(this.dgv_type.RowsrowMax.Cells0.Value=null) . break; El

13、se . stringID=dgv_type.RowsrowMax.Cells0.Value.ToString().Trim(); stringName=dgv_type.RowsrowMax.Cells1.Value.ToString().Trim(); stringSex=dgv_type.RowsrowMax.Cells2.Value.ToString().Trim();stringsendValues=(+ID+,+Name+,+Sex+); tempStrSQL=insertName(ID,Name,Sex)values+sendValues; link.UpdateDataBase

14、(tempStrSQL); MessageBox.Show(保存成功,信息); 至此,基本就完成了,下面给出所有代码。 usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceTest . publicpartialclassForm1:Form . privateDataSetd

15、s=newDataSet(); privateSqlDataAdapterda=newSqlDataAdapter(); privateDataTabletempDataTable; privateLinkDataBaselink=newLinkDataBase(); /用来存放DataGridView中输入数据的最大行号 privateintrowMax=0; publicForm1() . InitializeComponent(); privatevoidForm1_Load(objectsender,EventArgse) . BindType();cmb_sex.SelectedIn

16、dexChanged+=newEventHandler(cmb_sex_SelectedIndexChanged);this.dgv_type.Controls.Add(cmb_sex);publicvoidBindType().stringtempStrSQL=selectSexfromSex;tempDataTable=link.SelectDataBase(tempStrSQL);for(inti=0;itempDataTable.Rows.Count;i+)./将Sex中性别字段传给Comboboxthis.cmb_sex.Items.Add(tempDataTable.Rowsi0)

17、;privatevoiddgv_type_CurrentCellChanged(objectsender,EventArgse).if(this.dgv_type.CurrentCell.ColumnIndex=2).Rectanglerect=dgv_type.GetCellDisplayRectangle(dgv_type.CurrentCell.ColumnIndex,dgv_type.CurrentCell.RowIndex,false);cmb_sex.Left=rect.Left;cmb_sex.Top=rect.Top;cmb_sex.Width=rect.Width;cmb_s

18、ex.Height=rect.Width;cmb_sex.Visible=true;Else.cmb_sex.Visible=false;privatevoidcmb_sex_SelectedIndexChanged(objectsender,EventArgse).if(ComboBox)sender).Text.Trim()=男).if(dgv_type.CurrentCell!=null).dgv_type.CurrentCell.Value=男;dgv_type.CurrentCell.Tag=1;if(ComboBox)sender).Text.Trim()=女).if(dgv_ty

19、pe.CurrentCell!=null).dgv_type.CurrentCell.Value=女;dgv_type.CurrentCell.Tag=2;privatevoiddgv_type_DataBindingComplete(objectsender,DataGridViewBindingCompleteEventArgse).for(inti=0;ithis.dgv_type.Rows.Count;i+).if(dgv_type.Rowsi.Cells1.Value!=null&dgv_type.Rowsi.Cells1.ColumnIndex=1).dgv_type.Rowsi.

20、Cells1.Tag=dgv_type.Rowsi.Cells1.Value.ToString();if(dgv_type.Rowsi.Cells1.Value.ToString()=1).dgv_type.Rowsi.Cells1.Value=男;elseif(dgv_type.Rowsi.Cells1.Value.ToString()=2).dgv_type.Rowsi.Cells1.Value=女;privatevoidbtn_save_Click(objectsender,EventArgse).stringtempStrSQL;/rowMax为当前DataGridView中最大行号f

21、or(inti=rowMax;rowMaxthis.dgv_type.Rows.Count;rowMax+).if(this.dgv_type.RowsrowMax.Cells0.Value=null).break;Else.stringID=dgv_type.RowsrowMax.Cells0.Value.ToString().Trim();stringName=dgv_type.RowsrowMax.Cells1.Value.ToString().Trim();stringSex=dgv_type.RowsrowMax.Cells2.Value.ToString().Trim();stringsendValues=(+ID+,+Name+,+Sex+);tempStrSQL=insertName(ID,Name,Sex)values+sendValues;link.UpdateDataBase(tempStrSQL);MessageBox.Show(保存成功,信息);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!