




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通过OleDB连接方式,访问Access,Excel数据库. OleDbConnectionStringBuilderoleConStr=newOleDbConnectionStringBuilder();Access连接信息oleConStr.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+myDBFileName+;UserId=admin;Password=;Excel连接信息stringmyExcelConStr=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+myDB
2、FileName+;ExtendedProperties=Excel8.0;myExcelConStr=Provider=Microsoft.Jet.OLEDB.4.0;+DataSource=+myDBFileName+;+ExtendedProperties=+Convert.ToChar(34).ToString()+Excel8.0;+ExcelConnectionOptions()+Convert.ToChar(34).ToString();publicboolHeadersgetreturnHasHeaders;setHasHeaders=value;publicboolMixed
3、DatagetreturnIsMixedData;setIsMixedData=value;privatestringExcelConnectionOptions()stringstrOpts=;if(this.MixedData=true)strOpts+=Imex=2;if(this.Headers=true)strOpts+=HDR=Yes;elsestrOpts+=HDR=No;returnstrOpts;=查询数据=OleDbConnectionOleConn=newOleDbConnection(oleConStr.ConnectionString);OleDbCommandcmd
4、;stringSqlStr=Selecttop1*from+newMaTolName+;cmd=newOleDbCommand(SqlStr,OleConn);OleDbDataAdapterOleDapt=newOleDbDataAdapter();OleDapt.SelectCommand=cmd;OleConn.Open();DataSetmyDS=newDataSet();OleDapt.Fill(myDS);注意:如果是Excel数据库需在表名后加$;=增加字段=SqlStr=ALTERTABLE+newMaTolName.Replace($,)+ADDIsReaddecimal,R
5、owNolongIDENTITY(1,1);cmd=newOleDbCommand(SqlStr,OleConn);intaffectRows=cmd.ExecuteNonQuery();=在DataSet表中增加一列=myDS是已保存有数据的DataSetif(myDS.Tables0.Rows.Count1)returnIsSuccess;DataTabledt=myDS.Tables0;DataColumndc=newDataColumn();dc.DataType=Type.GetType(System.String);dc.DefaultValue=1;dc.ColumnName=M
6、aTolName;dt.Columns.Add(dc);/给该列赋值for(inti=0;idt.Rows.Count;i+)dt.RowsiMaTolName=myMaTolName;dt.DataSet.AcceptChanges();=获取数据源的框架信息,如其中的表名等.=System.Data.DataTabledt=OleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);=获取与更新DataGrid中的数据改变,并更新数据源.=DataTabledtChanges=dt.GetChanges();OleDbCommandol
7、eCmd;OleDbDataAdapteroleda=newOleDbDataAdapter(oleCmd);oleda.InsertCommand=newOleDbCommand(strInsert,oleConn);oleda.UpdateCommand=newOleDbCommand(strUpdate,oleConn);oleAdapter.Update(dtChanges);privatevoidCreateNewTable()System.Data.DataTabletable=newDataTable(Student);DataColumncolumn;DataRowrow;co
8、lumn=newDataColumn();column.DataType=System.Type.GetType(System.Int32);column.ColumnName=SID;column.AutoIncrement=true;column.ReadOnly=false;column.Unique=true;table.Columns.Add(column);column=newDataColumn();column.DataType=System.Type.GetType(System.String);column.ColumnName=Name;column.AutoIncrem
9、ent=false;column.Caption=Name;column.ReadOnly=false;column.DefaultValue=myName;column.Unique=false;table.Columns.Add(column);/设置表的主键DataColumnPrimaryKeyColumns=newDataColumn1;PrimaryKeyColumns0=table.ColumnsSID;table.PrimaryKey=PrimaryKeyColumns;table.AcceptChanges();DataSetdataSet=newDataSet();data
10、Set.Tables.Add(table);for(inti=0;i=2;i+)row=table.NewRow();/rowSID=i;/rowName=name+i;table.Rows.Add(row);dataSet.AcceptChanges();this.dataGrid1.DataSource=dataSet.Tables0;=表的复制=/创建新表dataTableDestDataTabledataTableDest=newDataTable();/将表dataTableSource的结构复制到新表dataTableDest中dataTableDest=dataTableSour
11、ce.Clone();/然后再复制数据到新表中foreach(DataRowdrindataTableSource.Rows)/使用ImportRow()方法复制数据。若用dataTableDest.Rows.Add(dr)将会出错:System.ArgumentException:该行已经属于另一个表。dataTableDest.ImportRow(dr);直接用下面的方法就行了dataTableDest=dataTableSource.Copy();=创建表=DataTabledt=newDataTable(TableName);/增加列dt.Columns.Add(column0,Sys
12、tem.Type.GetType(System.String);dt.Columns.Add(newDataColumn(IsChild,typeof(bool);DataColumndc=newDataColumn(column1,System.Type.GetType(System.Boolean);dt.Columns.Add(dc);/增加行DataRowdr=dt.NewRow();drcolumn0=Good;drcolumn1=true;dt.Rows.Add(dr);/DoesntinitializetherowDataRowdr1=dt.NewRow();dt.Rows.Ad
13、d(dr1);/选择行/Searchthesecondrow如果没有赋值,则用isnull来selectDataRowdrs=dt.Select(column1isnull);DataRowdrss=dt.Select(column0=Good);/复制表包括数据DataTabledtNew=dt.Copy();/只复制表的架构DataTabledtOnlyScheme=dt.Clone();/增加行并赋值/Method1DataRowdroperate=dt.Rows0;droperatecolumn0=AXzhz;droperatecolumn1=false;/Method2dropera
14、te0=AXzhz;droperate1=false;/Method3dt.Rows0column0=AXzhz;dt.Rows0column1=false;/Method4dt.Rows00=AXzhz;dt.Rows01=false;dtOnlyScheme.Rows.Add(dt.Rows0.ItemArray);/获取行的状态if(dt.Rows0.RowState=DataRowState.Unchanged)/将表转换成xml数据流形式System.IO.TextWritertw=newSystem.IO.StringWriter();/ifTableNameisempty,Wri
15、teXml()willthrowException.dtNeedCoveret.TableName=dtNeedCoveret.TableName.Length=0?Table_AX:dtNeedCoveret.TableName;dtNeedCoveret.WriteXml(tw);dtNeedCoveret.WriteXmlSchema(tw);System.IO.TextReadertrDataTable=newSystem.IO.StringReader(xml.Substring(0,xml.IndexOf(?xml);System.IO.TextReadertrSchema=new
16、System.IO.StringReader(xml.Substring(xml.IndexOf(?xml);DataTabledtReturn=newDataTable();dtReturn.ReadXmlSchema(trSchema);dtReturn.ReadXml(trDataTable);/对表中的数据进行筛选/Itssostrangethatthesecondrowhasbeenfiltered/thesecondrowshowinGridViewnever/Itmeansnullfieldwillbefilteralways./Filtertheallconditionsdt.
17、DefaultView.RowFilter=column1true;/dt.DefaultView.RowFilter=column1=true;dt.DefaultView.RowStateFilter=DataViewRowState.Added;/对表的数据排序/StupidmethodDataRowdrsss=dt.Select(String.Empty,column0DESC,column1ASC);/Clevermethoddt.DefaultView.Sort=column0,column1ASC;dt.DefaultView.Sort=ID,NameASC;dt=dt.Defa
18、ultView.ToTable();/表的合并/两个结构相同的DT合并/*/将两个列不同的DataTable合并成一个新的DataTable/表1/表2/合并过的新表privateDataTableUnionSameDataTable(DataTabledt1,DataTabledt2)DataTabledt3=dt1.Clone();objectobj=newobjectdt3.Columns.Count;for(inti=0;idt1.Rows.Count;i+)dt1.Rowsi.ItemArray.CopyTo(obj,0);dt3.Rows.Add(obj);for(inti=0;i
19、dt2.Rows.Count;i+)dt2.Rowsi.ItemArray.CopyTo(obj,0);dt3.Rows.Add(obj);returndt3;/两个结构不同的DT合并/*/将两个列不同的DataTable合并成一个新的DataTable/表1/表2/合并过的新表privateDataTableUniteDataTable(DataTabledt1,DataTabledt2)DataTabledt3=dt1.Clone();for(inti=0;idt2.Columns.Count;i+)dt3.Columns.Add(dt2.Columnsi.ColumnName);obje
20、ctobj=newobjectdt3.Columns.Count;for(inti=0;i=dt2.Rows.Count)for(inti=0;idt2.Rows.Count;i+)for(intj=0;jdt2.Columns.Count;j+)dt3.Rowsij+dt1.Columns.Count=dt2.Rowsij.ToString();elseDataRowdr3;for(inti=0;idt2.Rows.Count-dt1.Rows.Count;i+)dr3=dt3.NewRow();dt3.Rows.Add(dr3);for(inti=0;idt2.Rows.Count;i+)
21、for(intj=0;jdt2.Columns.Count;j+)dt3.Rowsij+dt1.Columns.Count=dt2.Rowsij.ToString();returndt3;/多个结构相同的DataTable合并publicDataTableGetAllEntrysDataTable()DataTablenewDataTable=GetEntrysDataTable(0).Clone();objectobj=newobjectnewDataTable.Columns.Count;for(inti=0;ientryGroups.GetEntryGroupCount();i+)for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会工作的未来发展趋势试题及答案
- 软件评测师考试复习资料整合试题及答案
- 多媒体设计的多样性及融合方式探讨试题及答案
- 软件评测师考试全方位尝试策略试题及答案
- 二级计算机应试分享题及答案
- 多媒体应用设计师考试的自我提升途径试题及答案
- 系统分析师考试的职业发展路径与试题及答案
- 专业钢琴师测试题及答案
- 文件收集归档管理制度
- 药品品质检管理制度
- 2025年中国1,2-环氧丁烷行业市场规模调研及投资前景研究分析报告
- 济南长清产业发展投资控股集团有限公司招聘笔试题库2025
- 合同延期协议书的范本
- 【变电站高压断路器和隔离开关的选择计算过程案例】2100字
- 2025年行政职业能力测验试卷及答案
- 广东省广州市越秀区2024-2025学年七年级下学期期末考试语文试题
- 道观庙宇托管协议书
- 硬膜下血肿护理查房
- 2025年四川省成都市武侯区中考道德与法治模拟试卷
- 2025年市政工程地下管网试题及答案
- 关爱眼健康远离近视眼科普呵护眼睛让视界更精彩课件
评论
0/150
提交评论