c数据库datatable
① 在C语言中,如何将EXCEL或者文档中的数据读入程序中
1 使用的命名空间为:using System.Data.OleDb;
2 连接数据库的字符串为:
string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\
目录.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
*.xsl可以认为是数据库了,HDR表示是否隐藏excel的第一行(因为第一行一般表示字段名称)
IMEX 参数,因为不同的模式代表着不同的读写行为:当IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案凳链只枣困孙能用来做“读取”用途。当 IMEX=2 时为“连结模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
3.OleDbConnection myConnection = new OleDbConnection(myConn);
4.string mysqlstr = "SELECT f1,f2,f5 FROM [Sheet1$]";
//[Sheet1$]就是表格了,选取第1,2,5列,用Fn表示第n列5 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySQLstr, myConnection);6 DataSet myDS = new DataSet();7 myDataAdapter.Fill(myDS, "[Sheet1$]");
//原理都跟读取sql是一样
DataTable dt = myConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//把相关信息记录到datatable中
string tbname = dt.Rows[0][2].ToString().Trim();
//读取表名信息【注尺誉意】由于excel每个单元格内数据默认的格式为:varchar(255),因此读取超过255的单元格内容是需要修改注册表,这里提供修改方法:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]"TypeGuessRows"="0"表示从前TypeGuessRows行判断数据的类型。