查询EXCEL数据时,列数据为空的问题

   在查询EXCEL数据时,如果某一列的值有数字有文本,那最后我们使用查询语句获取的数据里就有可能读取不到某些文本值.这个原因我想在网上找找有一大段的.

   其实要解决这个问题也很简单,只要在连接字符串中指示所有列都按文本来处理,这样就可以获取到所有的数据了.

 String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/app_data/库存配件明细表.xls") + ";Extended Properties='Excel 8.0;IMEX=1; HDR=1;'";
                OleDbConnection objConn = new OleDbConnection(sConnectionString);
                objConn.Open();
                OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn);
                OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
                objAdapter1.SelectCommand = objCmdSelect;
                DataSet objDataset1 = new DataSet();

                objAdapter1.Fill(objDataset1, "XLData");
                objConn.Close();
                objConn.Dispose();
                dt = objDataset1.Tables[0];

 

关键就是上面红色的那个属性设置.IMEX 表示是否强制转换为文本

 HDR 有无字段,一般默认excel表中第1行的列标题为字段名,如姓名、年龄等

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值