C# 用数据库读取Excel出现“定义了过多字段”错误
2013-03-13 10:14
211 查看
原来by sheetname获取
发现提示定义过多字段的问题, 先看了下Excel,三个sheet其中一个sheet最多到G列,增加设置A:G 就避免了
string strConn; DataSet objMyDataSet = new DataSet(); //读上传文件内容 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;"; strConn = strConn + "Data Source=" + filePath; objMyOleDbConnection.ConnectionString = strConn; objMyOleDbConnection.Open(); OleDbDataAdapter objMyDataAdapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$]", objMyOleDbConnection); objMyDataAdapter.Fill(objMyDataSet, sheetName); DataTable dtblSheet = objMyDataSet.Tables[sheetName]; // 移除名称为空的数据列 for (int j = 0; j < dtblSheet.Columns.Count; j++) { dtblSheet.Columns[j].ColumnName = dtblSheet.Columns[j].ColumnName.Trim(); if (string.IsNullOrEmpty(dtblSheet.Columns[j].ColumnName) || dtblSheet.Columns[j].ColumnName.Trim().Length == 0) { dtblSheet.Columns.RemoveAt(j); j--; } } // 移除默认的Sheet if (dtblSheet.Columns.Count == 0 || (dtblSheet.Columns.Count == 1 && dtblSheet.Columns[0].ColumnName == "F1" && (dtblSheet.Rows.Count == 0 || (dtblSheet.Rows.Count == 1 && dtblSheet.Rows[0][0] == DBNull.Value)))) { objMyDataSet.Tables.Remove(dtblSheet); }
return objMyDataSet;
发现提示定义过多字段的问题, 先看了下Excel,三个sheet其中一个sheet最多到G列,增加设置A:G 就避免了
string strConn; DataSet objMyDataSet = new DataSet(); //读上传文件内容 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;"; strConn = strConn + "Data Source=" + filePath; objMyOleDbConnection.ConnectionString = strConn; objMyOleDbConnection.Open(); OleDbDataAdapter objMyDataAdapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$A:G]", objMyOleDbConnection); objMyDataAdapter.Fill(objMyDataSet, sheetName); DataTable dtblSheet = objMyDataSet.Tables[sheetName]; // 移除名称为空的数据列 for (int j = 0; j < dtblSheet.Columns.Count; j++) { dtblSheet.Columns[j].ColumnName = dtblSheet.Columns[j].ColumnName.Trim(); if (string.IsNullOrEmpty(dtblSheet.Columns[j].ColumnName) || dtblSheet.Columns[j].ColumnName.Trim().Length == 0) { dtblSheet.Columns.RemoveAt(j); j--; } } // 移除默认的Sheet if (dtblSheet.Columns.Count == 0 || (dtblSheet.Columns.Count == 1 && dtblSheet.Columns[0].ColumnName == "F1" && (dtblSheet.Rows.Count == 0 || (dtblSheet.Rows.Count == 1 && dtblSheet.Rows[0][0] == DBNull.Value)))) { objMyDataSet.Tables.Remove(dtblSheet); } return objMyDataSet;
相关文章推荐
- C# 用数据库读取Excel出现“定义了过多字段”错误的解决方法
- C# 用数据库读取Excel出现“定义了过多字段”错误的解决方法
- C# 用数据库读取Excel出现“定义了过多字段”错误的解决方法
- C# 用数据库读取Excel出现“定义了过多字段”错误的解决方法 .
- 在写一段读excel的程序时经常出现“定义了过多字段”的错误提示
- 读取Excel异常定义了过多字段的解决方法
- 【读取Excel】定义了过多字段
- C# 读取EXCEL文件出现数据丢失问题,数据不完整
- C#操作word或excel及水晶报表,检索 COM 类工厂中 CLSID 为 {} 的组件时失败,原因是出现以下错误: 80070005
- 【转载】C#连接数据库及读取数据库中字段的简单方法总结
- 数据库中添加了一个字段出现的错误:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException,解决方案
- C#导入Excel时到数据库,报外部数据库驱动程序中(1)的意外错误
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 【网站客户端无法读取服务器本机上的Excel】
- C# OleDb读取Excel文件 避免出现 科学计数法 的列
- C#恢复数据库之后,出现错误transport-level error has occurred when sending the request to the server
- vs.net C# 连接数据库 出现错误 用户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关联
- 【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- 转:C#编程读取Excel文件,引用Microsoft.Office.Interop.Excel出现的问题
- c#读取excel导入到数据库中
- C# 读取EXCEL文件出现数据丢失问题