C#读取数据库.docx
《C#读取数据库.docx》由会员分享,可在线阅读,更多相关《C#读取数据库.docx(12页珍藏版)》请在冰豆网上搜索。
C#读取数据库
本文给大家介绍6种使用C#读取数据库所有表名称的方法。
如果你需要这方面的操作,请看一下本文的介绍。
第1、sqldmo
SQLDMO是操作SQLServer的理想的方式,如果您的数据库是SQLServer就可以考虑使用这种方式。
在C#中使用SQLDMO需要添加SQLDMO的引用,然后在当前的文件中usingSQLDMO;即可以使用SQLDMO。
SQLDMO的对象模型大家可以在SQLServer的帮助中获得。
privatevoidGetTabels_DMO(stringstrServerName,stringstrUser,stringstrPWD,stringstrDatabase)
{
SQLDMO.SQLServerServer=newSQLDMO.SQLServerClass();
//连接到服务器
Server.Connect(strServerName,strUser,strPWD);
//对所有的数据库遍历,获得指定数据库
for(inti=0;i{//判断当前数据库是否是指定数据库if(Server.Databases.Item(i+1,"dbo").Name==strDatabase){//获得指定数据库SQLDMO._Databasedb=Server.Databases.Item(i+1,"dbo");//获得指定数据库中的所有表for(intj=0;j{MessageBox.Show(db.Tables.Item(j+1,"dbo").Name);}}}}第2、adoxadox是adoExtensionsforDDLandSecurity,是微软对ADO技术的扩展,使用它我们可以操作数据库的结构。它是一个COM组件,估计以后在ADO.NET中会增加ADOX的一些功能。如果大家需要ADOX的一些资料,我可以提供。下面的一个例子就是使用ADOX来获得当前数据库的所有表。privatevoidGetTables_ADOX(){//ADO的数据库连接ADODB.ConnectionClasscn=newADODB.ConnectionClass();stringConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;InitialCatalog=Test;DataSource=HBXP";cn.Open(ConnectionString,"sa","",0);//操作ADOX的Catalog对象CatalogClasscat=newCatalogClass();cat.ActiveConnection=cn;for(inti=0;i{MessageBox.Show(cat.Tables[i].Name);}}注意:在上面的代码中cat.ActiveConnection不能是ADO.Net中的Connection,而应该是ADO的Connection。第3、中的oledbconnection在c#中我们首先会考虑使用来解决问题,如果没有方法才会考虑使用adox或者sqldmo来解决这个问题。虽然adox和sqldmo也能够解决这个问题,但是他们毕竟是com组件,在.net中使用起来和在非.net平台会有一些差异,不是很顺手。下面的示例就显示了在中的oledbconnection的方法getoledbschematable来获得数据库的架构。大家可以在msdn中看到这个方法的说明:publicDataTableGetOleDbSchemaTable(Guidschema,object[]restrictions);参数schemaOleDbSchemaGuid的值之一,它指定要返回的架构表。restrictions限制值的Object数组。这些值按照限制列的顺序来应用。即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。返回值包含请求的架构信息的DataTable。更多的信息大家可以查询MSDN,下面将示例如何实现。privatevoidGetTables_ADONET(){//处理OleDbConnectionstringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";OleDbConnectioncn=newOleDbConnection(strConnectionString);cn.Open();//利用OleDbConnection的GetOleDbSchemaTable来获得数据库的结构DataTabledt=cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});foreach(DataRowdrindt.Rows){MessageBox.Show((String)dr["TABLE_NAME"]);}}文章来自学IT网:第4、信息架构视图信息架构视图是sql-92标准中定义的架构视图,这些视图独立于系统表。信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。下面的示例使用信息架构视图来工作。privatevoidGetTables_INFORMATION_SCHEMA(){//打开连接stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];sqlcn=newSqlConnection(strConnectionString);sqlcn.Open();//使用信息架构视图SqlCommandsqlcmd=newSqlCommand("SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_TYPE='BASETABLE'",sqlcn);SqlDataReaderdr=sqlcmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr.GetString(0));}}第5、使用系统表如果您的数据库系统是sqlserver,就可以使用如下的方式来获得当前数据库的所有表:privatevoidGetTables_SystemTable(){//打开连接stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];sqlcn=newSqlConnection(strConnectionString);sqlcn.Open();//使用信息架构视图SqlCommandsqlcmd=newSqlCommand("SELECTOBJECT_NAME(id)FROMsysobjectsWHERExtype='U'ANDOBJECTPROPERTY(id,'IsMSShipped')=0",sqlcn);SqlDataReaderdr=sqlcmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr.GetString(0));}}第6、使用sqlserver的存储过程“sp_tables”下面是“盛国军”朋友提出的使用存储过程的方法的补充代码。publicvoidGetTables_StoredProcedure(){//处理OleDbConnectionstringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";OleDbConnectioncn=newOleDbConnection(strConnectionString);cn.Open();//执行存储过程OleDbCommandcmd=newOleDbCommand("sp_tables",cn);cmd.CommandType=CommandType.StoredProcedure;OleDbDataReaderdr=cmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr["TABLE_NAME"].ToString());}}文章来自学IT网:给你一个方法,自己去扩展: privatevoidEventCellChanged(intcolumn,introw)//自己想要的行与列数目 { this.tableLayoutPanel1.Controls.Clear(); //rowsettings; this.tableLayoutPanel1.RowCount=row; this.tableLayoutPanel1.RowStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.RowStyles.Add(newRowStyle(SizeType.Percent,100/row)); } //columnsettings; this.tableLayoutPanel1.ColumnCount=column; this.tableLayoutPanel1.ColumnStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.ColumnStyles.Add(newColumnStyle(SizeType.Percent,100/column)); } for(inti=0;i { for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
//判断当前数据库是否是指定数据库
if(Server.Databases.Item(i+1,"dbo").Name==strDatabase)
//获得指定数据库
SQLDMO._Databasedb=Server.Databases.Item(i+1,"dbo");
//获得指定数据库中的所有表
for(intj=0;j{MessageBox.Show(db.Tables.Item(j+1,"dbo").Name);}}}}第2、adoxadox是adoExtensionsforDDLandSecurity,是微软对ADO技术的扩展,使用它我们可以操作数据库的结构。它是一个COM组件,估计以后在ADO.NET中会增加ADOX的一些功能。如果大家需要ADOX的一些资料,我可以提供。下面的一个例子就是使用ADOX来获得当前数据库的所有表。privatevoidGetTables_ADOX(){//ADO的数据库连接ADODB.ConnectionClasscn=newADODB.ConnectionClass();stringConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;InitialCatalog=Test;DataSource=HBXP";cn.Open(ConnectionString,"sa","",0);//操作ADOX的Catalog对象CatalogClasscat=newCatalogClass();cat.ActiveConnection=cn;for(inti=0;i{MessageBox.Show(cat.Tables[i].Name);}}注意:在上面的代码中cat.ActiveConnection不能是ADO.Net中的Connection,而应该是ADO的Connection。第3、中的oledbconnection在c#中我们首先会考虑使用来解决问题,如果没有方法才会考虑使用adox或者sqldmo来解决这个问题。虽然adox和sqldmo也能够解决这个问题,但是他们毕竟是com组件,在.net中使用起来和在非.net平台会有一些差异,不是很顺手。下面的示例就显示了在中的oledbconnection的方法getoledbschematable来获得数据库的架构。大家可以在msdn中看到这个方法的说明:publicDataTableGetOleDbSchemaTable(Guidschema,object[]restrictions);参数schemaOleDbSchemaGuid的值之一,它指定要返回的架构表。restrictions限制值的Object数组。这些值按照限制列的顺序来应用。即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。返回值包含请求的架构信息的DataTable。更多的信息大家可以查询MSDN,下面将示例如何实现。privatevoidGetTables_ADONET(){//处理OleDbConnectionstringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";OleDbConnectioncn=newOleDbConnection(strConnectionString);cn.Open();//利用OleDbConnection的GetOleDbSchemaTable来获得数据库的结构DataTabledt=cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});foreach(DataRowdrindt.Rows){MessageBox.Show((String)dr["TABLE_NAME"]);}}文章来自学IT网:第4、信息架构视图信息架构视图是sql-92标准中定义的架构视图,这些视图独立于系统表。信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。下面的示例使用信息架构视图来工作。privatevoidGetTables_INFORMATION_SCHEMA(){//打开连接stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];sqlcn=newSqlConnection(strConnectionString);sqlcn.Open();//使用信息架构视图SqlCommandsqlcmd=newSqlCommand("SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_TYPE='BASETABLE'",sqlcn);SqlDataReaderdr=sqlcmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr.GetString(0));}}第5、使用系统表如果您的数据库系统是sqlserver,就可以使用如下的方式来获得当前数据库的所有表:privatevoidGetTables_SystemTable(){//打开连接stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];sqlcn=newSqlConnection(strConnectionString);sqlcn.Open();//使用信息架构视图SqlCommandsqlcmd=newSqlCommand("SELECTOBJECT_NAME(id)FROMsysobjectsWHERExtype='U'ANDOBJECTPROPERTY(id,'IsMSShipped')=0",sqlcn);SqlDataReaderdr=sqlcmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr.GetString(0));}}第6、使用sqlserver的存储过程“sp_tables”下面是“盛国军”朋友提出的使用存储过程的方法的补充代码。publicvoidGetTables_StoredProcedure(){//处理OleDbConnectionstringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";OleDbConnectioncn=newOleDbConnection(strConnectionString);cn.Open();//执行存储过程OleDbCommandcmd=newOleDbCommand("sp_tables",cn);cmd.CommandType=CommandType.StoredProcedure;OleDbDataReaderdr=cmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr["TABLE_NAME"].ToString());}}文章来自学IT网:给你一个方法,自己去扩展: privatevoidEventCellChanged(intcolumn,introw)//自己想要的行与列数目 { this.tableLayoutPanel1.Controls.Clear(); //rowsettings; this.tableLayoutPanel1.RowCount=row; this.tableLayoutPanel1.RowStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.RowStyles.Add(newRowStyle(SizeType.Percent,100/row)); } //columnsettings; this.tableLayoutPanel1.ColumnCount=column; this.tableLayoutPanel1.ColumnStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.ColumnStyles.Add(newColumnStyle(SizeType.Percent,100/column)); } for(inti=0;i { for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
MessageBox.Show(db.Tables.Item(j+1,"dbo").Name);
}
第2、adox
adox是adoExtensionsforDDLandSecurity,是微软对ADO技术的扩展,使用它我们可以操作数据库的结构。
它是一个COM组件,估计以后在ADO.NET中会增加ADOX的一些功能。
如果大家需要ADOX的一些资料,我可以提供。
下面的一个例子就是使用ADOX来获得当前数据库的所有表。
privatevoidGetTables_ADOX()
//ADO的数据库连接
ADODB.ConnectionClasscn=newADODB.ConnectionClass();
stringConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;InitialCatalog=Test;DataSource=HBXP";
cn.Open(ConnectionString,"sa","",0);
//操作ADOX的Catalog对象
CatalogClasscat=newCatalogClass();
cat.ActiveConnection=cn;
for(inti=0;i{MessageBox.Show(cat.Tables[i].Name);}}注意:在上面的代码中cat.ActiveConnection不能是ADO.Net中的Connection,而应该是ADO的Connection。第3、中的oledbconnection在c#中我们首先会考虑使用来解决问题,如果没有方法才会考虑使用adox或者sqldmo来解决这个问题。虽然adox和sqldmo也能够解决这个问题,但是他们毕竟是com组件,在.net中使用起来和在非.net平台会有一些差异,不是很顺手。下面的示例就显示了在中的oledbconnection的方法getoledbschematable来获得数据库的架构。大家可以在msdn中看到这个方法的说明:publicDataTableGetOleDbSchemaTable(Guidschema,object[]restrictions);参数schemaOleDbSchemaGuid的值之一,它指定要返回的架构表。restrictions限制值的Object数组。这些值按照限制列的顺序来应用。即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。返回值包含请求的架构信息的DataTable。更多的信息大家可以查询MSDN,下面将示例如何实现。privatevoidGetTables_ADONET(){//处理OleDbConnectionstringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";OleDbConnectioncn=newOleDbConnection(strConnectionString);cn.Open();//利用OleDbConnection的GetOleDbSchemaTable来获得数据库的结构DataTabledt=cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});foreach(DataRowdrindt.Rows){MessageBox.Show((String)dr["TABLE_NAME"]);}}文章来自学IT网:第4、信息架构视图信息架构视图是sql-92标准中定义的架构视图,这些视图独立于系统表。信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。下面的示例使用信息架构视图来工作。privatevoidGetTables_INFORMATION_SCHEMA(){//打开连接stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];sqlcn=newSqlConnection(strConnectionString);sqlcn.Open();//使用信息架构视图SqlCommandsqlcmd=newSqlCommand("SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_TYPE='BASETABLE'",sqlcn);SqlDataReaderdr=sqlcmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr.GetString(0));}}第5、使用系统表如果您的数据库系统是sqlserver,就可以使用如下的方式来获得当前数据库的所有表:privatevoidGetTables_SystemTable(){//打开连接stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];sqlcn=newSqlConnection(strConnectionString);sqlcn.Open();//使用信息架构视图SqlCommandsqlcmd=newSqlCommand("SELECTOBJECT_NAME(id)FROMsysobjectsWHERExtype='U'ANDOBJECTPROPERTY(id,'IsMSShipped')=0",sqlcn);SqlDataReaderdr=sqlcmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr.GetString(0));}}第6、使用sqlserver的存储过程“sp_tables”下面是“盛国军”朋友提出的使用存储过程的方法的补充代码。publicvoidGetTables_StoredProcedure(){//处理OleDbConnectionstringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";OleDbConnectioncn=newOleDbConnection(strConnectionString);cn.Open();//执行存储过程OleDbCommandcmd=newOleDbCommand("sp_tables",cn);cmd.CommandType=CommandType.StoredProcedure;OleDbDataReaderdr=cmd.ExecuteReader();while(dr.Read()){MessageBox.Show(dr["TABLE_NAME"].ToString());}}文章来自学IT网:给你一个方法,自己去扩展: privatevoidEventCellChanged(intcolumn,introw)//自己想要的行与列数目 { this.tableLayoutPanel1.Controls.Clear(); //rowsettings; this.tableLayoutPanel1.RowCount=row; this.tableLayoutPanel1.RowStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.RowStyles.Add(newRowStyle(SizeType.Percent,100/row)); } //columnsettings; this.tableLayoutPanel1.ColumnCount=column; this.tableLayoutPanel1.ColumnStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.ColumnStyles.Add(newColumnStyle(SizeType.Percent,100/column)); } for(inti=0;i { for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
MessageBox.Show(cat.Tables[i].Name);
注意:
在上面的代码中cat.ActiveConnection不能是ADO.Net中的Connection,而应该是ADO的Connection。
第3、中的oledbconnection
在c#中我们首先会考虑使用来解决问题,如果没有方法才会考虑使用adox或者sqldmo来解决这个问题。
虽然adox和sqldmo也能够解决这个问题,但是他们毕竟是com组件,在.net中使用起来和在非.net平台会有一些差异,不是很顺手。
下面的示例就显示了在中的oledbconnection的方法getoledbschematable来获得数据库的架构。
大家可以在msdn中看到这个方法的说明:
publicDataTableGetOleDbSchemaTable(
Guidschema,
object[]restrictions);
参数
schema
OleDbSchemaGuid的值之一,它指定要返回的架构表。
restrictions
限制值的Object数组。
这些值按照限制列的顺序来应用。
即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。
返回值
包含请求的架构信息的DataTable。
更多的信息大家可以查询MSDN,下面将示例如何实现。
privatevoidGetTables_ADONET()
//处理OleDbConnection
stringstrConnectionString=@"IntegratedSecurity=SSPI;DataSource=HBXP;InitialCatalog=Test;Provider=SQLOLEDB.1";
OleDbConnectioncn=newOleDbConnection(strConnectionString);
cn.Open();
//利用OleDbConnection的GetOleDbSchemaTable来获得数据库的结构
DataTabledt=cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});
foreach(DataRowdrindt.Rows)
MessageBox.Show((String)dr["TABLE_NAME"]);
文章来自学IT网:
第4、信息架构视图
信息架构视图是sql-92标准中定义的架构视图,这些视图独立于系统表。
信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。
下面的示例使用信息架构视图来工作。
privatevoidGetTables_INFORMATION_SCHEMA()
//打开连接
stringstrConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
sqlcn=newSqlConnection(strConnectionString);
sqlcn.Open();
//使用信息架构视图
SqlCommandsqlcmd=newSqlCommand("SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_TYPE='BASETABLE'",sqlcn);
SqlDataReaderdr=sqlcmd.ExecuteReader();
while(dr.Read())
MessageBox.Show(dr.GetString(0));
第5、使用系统表
如果您的数据库系统是sqlserver,就可以使用如下的方式来获得当前数据库的所有表:
privatevoidGetTables_SystemTable()
SqlCommandsqlcmd=newSqlCommand("SELECTOBJECT_NAME(id)FROMsysobjectsWHERExtype='U'ANDOBJECTPROPERTY(id,'IsMSShipped')=0",sqlcn);
第6、使用sqlserver的存储过程“sp_tables”
下面是“盛国军”朋友提出的使用存储过程的方法的补充代码。
publicvoidGetTables_StoredProcedure()
//执行存储过程
OleDbCommandcmd=newOleDbCommand("sp_tables",cn);
cmd.CommandType=CommandType.StoredProcedure;
OleDbDataReaderdr=cmd.ExecuteReader();
MessageBox.Show(dr["TABLE_NAME"].ToString());
给你一个方法,自己去扩展:
privatevoidEventCellChanged(intcolumn,introw)//自己想要的行与列数目
this.tableLayoutPanel1.Controls.Clear();
//rowsettings;
this.tableLayoutPanel1.RowCount=row;
this.tableLayoutPanel1.RowStyles.Clear();
for(inti=0;i { this.tableLayoutPanel1.RowStyles.Add(newRowStyle(SizeType.Percent,100/row)); } //columnsettings; this.tableLayoutPanel1.ColumnCount=column; this.tableLayoutPanel1.ColumnStyles.Clear(); for(inti=0;i { this.tableLayoutPanel1.ColumnStyles.Add(newColumnStyle(SizeType.Percent,100/column)); } for(inti=0;i { for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
this.tableLayoutPanel1.RowStyles.Add(newRowStyle(SizeType.Percent,100/row));
//columnsettings;
this.tableLayoutPanel1.ColumnCount=column;
this.tableLayoutPanel1.ColumnStyles.Clear();
for(inti=0;i { this.tableLayoutPanel1.ColumnStyles.Add(newColumnStyle(SizeType.Percent,100/column)); } for(inti=0;i { for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
this.tableLayoutPanel1.ColumnStyles.Add(newColumnStyle(SizeType.Percent,100/column));
for(inti=0;i { for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
for(intj=0;j { label=newLabel(); label.Text=""//这里设置你需要显示的字符串; label.TextAlign=ContentAlignment.MiddleCenter; label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right))); label.AutoSize=true; label.TextAlign=ContentAlignment.MiddleCenter; tableLayoutPanel1.Controls.Add(label,i,j); } } }Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。一、COM组件的转换:虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:tlbimp.exeExcel9.olb运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。这就是由此COM组件转换而成的类库文件。在编译下面介绍的程序的时候,将会用到此三个文件。二、本文中介绍的程序设计及运行环境 (1).微软视窗2000服务器版(2)..NetFrameworkSDKBeta2以上版本(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)(4).Office2000套件三、本文介绍的数据库的数据字典:在下面程序中,采用的数据库类型是SQLServer7.0。数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:字段名称字段类型字段长度姓名varchar10性别varchar10工作单位varchar50四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:(1)连接数据库,得到数据集:实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下: try { //建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost"; OleDbConnectionmyConn =newOleDbConnection(strCon); myConn.Open(); stringstrCom="SELECT*FROMtable01"; //创建一个DataSet对象 DataSetmyDataSet=newDataSet(); OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn); myCommand.Fill(myDataSet,"table01"); //关闭此OleDbConnection myConn.Close(); } catch(Exceptioney) { MessageBox.Show("连接错误!"+ey.ToString(),"错误"); } DataTabletable=myDataSet.Tables[0]; //得到数据集(2)创建一个空的Excel电子表格文档这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码: Excel.Applicationexcel=newExcel.Application(); excel.Application.Workbooks.Add(true);这样一个空的Excel表格就产生了。(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。下面就是实现此段功能的代码: intcolIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[1,colIndex]=col.ColumnName; }(4).实现数据集到Excel表格的转换以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码: introwIndex=1; foreach(DataRowrowintable.Rows) { rowIndex++; colIndex=0; foreach(DataColumncolintable.Columns) { colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); } }创建示例Excel工作表启动MicrosoftExcel,然后创建一个新的工作表。将以下信息添加到新工作表中以创建一个简单的Excel数据库:AB1FirstNameLastName2ScottBishop3KatieJordan注意:虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。突出显示此数据所在的行和列。在插入菜单上,指向名称,然后单击定义。在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。在文件菜单上,单击保存。在“保存位置”列表中,选择Web服务器的根目录(通常为C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入ExcelData.xls。单击确定。在文件菜单上,单击退出。返回页首使用VisualC#.NET创建ASP.NET示例此代码示例说明如何查询和显示Excel工作表中的信息。以下代码使用您在上一节中创建的工作表。打开MicrosoftVisualStudio.NET。此时将显示VisualStudio.NET集成开发环境(IDE)。在文件菜单上,指向新建,然后单击项目。在新建项目对话框的项目类型下面,单击VisualC#项目。在模板下面,单击ASP.NETWeb应用程序。在新建项目对话框中,找到名称和位置文本框。注意,名称
label=newLabel();
label.Text=""//这里设置你需要显示的字符串;
label.TextAlign=ContentAlignment.MiddleCenter;
label.Anchor=((AnchorStyles)((AnchorStyles.Left|AnchorStyles.Right)));
label.AutoSize=true;
tableLayoutPanel1.Controls.Add(label,i,j);
Excel表格是微软公司Office套件中专门用作电子表格处理的软件,在实际的办公中,Excel表格的用途是非常广的,由此许多办公人员喜欢以Excel表格的形式来存取数据。
这就要求程序设计人员要掌握把已经得到数据集,转换成Excel表格中。
那么作为.Net程序开发语言中的一个重要组成部分的C#是如何来实现这个过程的转换的,本文就来探讨一下这个问题。
一、COM组件的转换:
虽然C#可以利用.Net框架中的类库——.NetFrameWorkSDK,这个内容丰富,功能强大的类库来实现很多功能。
其实对于C#来说,还有一个重要的资源,那就是已经拥有的COM组件,最大可能使用这些COM组件,往往会得到问题解决的最佳路径。
说到这里,可能有读者会问,编译C#所使用到的类库,都是受管代码(ManagedCode),而COM是非受管代码(UnmanagedCode)的文件,这些COM组件难道可以被C#直接使用么?
这个问题问的非常好,其实这也是C#中使用COM组件的关键问题。
就如问题中所讲的,编译C#文件的时候,所使用的类库必须是受管代码(ManagedCode)文件,所以要使用是非受管代码(UnmanagedCode)的文件的COM组件,必须实现从非受管代码文件到受管代码文件的转换。
在.NetFrameWrokSDK中就专门为这种转换提供了一个工具“tlbimp.exe”。
如果你安装.NetFrameWorkSDK在“C”盘,那么你会在目录“C:
\ProgramFiles\Microsoft.NET\FrameworkSDK\Bin”中发现他。
同样我们知道Excel对象的COM组件名称为“EXCEL9.OLB”,如果你在“C”盘安装了Office套件,你可以在目录“C:
\ProgramFiles\MicrosoftOffice\Office”中发现这个文件。
在找到了上述的二个文件后,把这二个文件都拷贝到C盘的根目录下面后,只需要运行下列简单的命令就可以实现对此COM组件的转换了,具体的命令如下:
tlbimp.exeExcel9.olb
运行完此命令后,就可以在C盘的根目录下面发现多出来三个DLL文件,分别是“excel.dll”、“vbide.dll”和“office.dll”。
这就是由此COM组件转换而成的类库文件。
在编译下面介绍的程序的时候,将会用到此三个文件。
二、本文中介绍的程序设计及运行环境
(1).微软视窗2000服务器版
(2)..NetFrameworkSDKBeta2以上版本
(3).MicrosoftDataAccessComponent2.6以上版本(MDAC2.6)
(4).Office2000套件
三、本文介绍的数据库的数据字典:
在下面程序中,采用的数据库类型是SQLServer7.0。
数据库服务器选用的是本地服务器,数据库名称为“temp”,数据表名称为“table01”,数据字典如下:
字段名称
字段类型
字段长度
姓名
varchar
10
性别
工作单位
50
四、C#实现从数据集到Excel表格的转变的主要步骤和实现方法:
(1)连接数据库,得到数据集:
实现这个过程相对比较简单,利用下面这些代码就可以实现对数据库的连接和得到自己的数据集,在下面的代码中,都有相应的注释,具体如下:
try
//建立数据连接,此字符串的意思是打开Sqlserver数据库,服务器名称为本//地,数据库为temp
stringstrCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=temp;DataSource=Localhost";
OleDbConnectionmyConn =newOleDbConnection(strCon);
myConn.Open();
stringstrCom="SELECT*FROMtable01";
//创建一个DataSet对象
DataSetmyDataSet=newDataSet();
OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);
myCommand.Fill(myDataSet,"table01");
//关闭此OleDbConnection
myConn.Close();
catch(Exceptioney)
MessageBox.Show("连接错误!
"+ey.ToString(),"错误");
DataTabletable=myDataSet.Tables[0];
//得到数据集
(2)创建一个空的Excel电子表格文档
这就要使用到由COM组件转换成的三个DLL文件了,在这些文件中定义了一个类“Excel.Application”,C#就是通过这个类来创建Excel电子表格文档的,下面是在C#中创建Excel表格的具体实现代码:
Excel.Applicationexcel=newExcel.Application();
excel.Application.Workbooks.Add(true);
这样一个空的Excel表格就产生了。
(3)读取数据的字段名称,并在产生的Excel表格的第一行显示出来
为了在电子表格中显示的更明了,所以在定义字段名称的时候采用了中文,在“excel”对象中有一个属性“Cells”,此属性就是特指Excel表格中的每一个小的单元,你可以通过设定此属性的二个参数来访问创建的Excel表格中的每一个单元。
下面就是实现此段功能的代码:
intcolIndex=0;
foreach(DataColumncolintable.Columns)
colIndex++;
excel.Cells[1,colIndex]=col.ColumnName;
(4).实现数据集到Excel表格的转换
以Excel表格来显示数据集中的数据,所运用的知识和(3)中的基本相同,下面是实现此功能的程序代码:
introwIndex=1;
foreach(DataRowrowintable.Rows)
rowIndex++;
colIndex=0;
excel.Cells[rowIndex,colIndex]=
row[col.ColumnName].ToString();
创建示例Excel工作表
启动MicrosoftExcel,然后创建一个新的工作表。
将以下信息添加到新工作表中以创建一个简单的Excel数据库:
AB
1FirstNameLastName
2ScottBishop
3KatieJordan
虽然在本示例中数据是从单元格A1开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。
突出显示此数据所在的行和列。
在插入菜单上,指向名称,然后单击定义。
在“当前工作簿中的名称”文本框中,键入myRange1,然后单击确定。
在文件菜单上,单击保存。
在“保存位置”列表中,选择Web服务器的根目录(通常为C:
\InetPub\Wwwroot\)。
在“文件名”文本框中,键入ExcelData.xls。
单击确定。
在文件菜单上,单击退出。
返回页首
使用VisualC#.NET创建ASP.NET示例
此代码示例说明如何查询和显示Excel工作表中的信息。
以下代码使用您在上一节中创建的工作表。
打开MicrosoftVisualStudio.NET。
此时将显示VisualStudio.NET集成开发环境(IDE)。
在文件菜单上,指向新建,然后单击项目。
在新建项目对话框的项目类型下面,单击VisualC#项目。
在模板下面,单击ASP.NETWeb应用程序。
在新建项目对话框中,找到名称和位置文本框。
注意,名称
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1