首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入前导为零的3位字段

导入前导为零的3位字段
EN

Stack Overflow用户
提问于 2012-11-07 08:16:36
回答 2查看 743关注 0票数 1

ASP.NET、C#、MVC3、Code First项目

我正在尝试从Excel电子表格导入数据。我已经将所有单元格格式化为文本。

导入工作表中的样本行如下所示。

代码语言:javascript
复制
Account             Card               ThreeCode  Route  
04562954830287127   32849321890233127  183        154839254 
04562954830287128   32849321890233128  233
04562954830287129   32849321890233129  082
04562954830287130   32849321890233130  428

当我在debug中运行并向下钻取到ds DataSet时,Account和Card列作为字符串导入,3-Digit和Route列作为双精度导入。问题出现在数据行3中以0 (082)开头的3位数字。它作为System.DBNull导入,并且为空。我需要能够导入3位数字的代码与前导零。有没有一种方法可以强制导入为全字符串,或者另一种方法来解决这个问题?我在网上搜索,但还没有找到解决方案。这将从浏览器运行,因此与本地计算机上的注册表、dll或ini文件有关的任何操作都不是一个选项。导入代码如下。提前感谢您的帮助。

代码语言:javascript
复制
public ActionResult ExcelToDS(string Path = "C;\File.xls")
{ 
  string strConn = "Provider= Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + "; " + "Extended Properties=Excel 8.0;";

  OleDbConnection conn = new OleDbConnection(strConn);
  conn.Open(); string strExcel = "";
  OleDbDataAdapter myCommand = null;
  DataTable dt = new DataTable();
  strExcel = "select * from [Import$]";
  DataSet ds = null; 
  myCommand = new OleDbDataAdapter(strExcel, strConn);
  ds = new DataSet(); myCommand.Fill(ds, "table1");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-07 23:18:36

似乎没有一种方法可以让这一点始终如一。我想出的解决办法是将1000添加到ThreeCode工作簿的列中。然后,您可以将数据导入到数据集中。然后当数据被读出时,你只需去掉"1“前缀即可。下面是我的内联方法。

代码语言:javascript
复制
public static string last3(this string instring)
{ int len = instring.Length - 3; string outstring = instring.Substring(len, 3); return outstring; }

您可以使用以下命令在代码中调用它:

代码语言:javascript
复制
card.3Dig = code.last3();

‘'card’和'3dig‘是被填充的类和字段。‘'code’是4位数的数据集数据。

票数 0
EN

Stack Overflow用户

发布于 2012-11-07 08:37:56

啊,是的,这就是卓越车手的乐趣。发生的情况是,它从数据类型的前十行开始确定,任何超出该格式的内容都将变为null。

解决方案是使用更强大的第三方驱动程序,通常需要一些成本,或者设置注册表项以完全采样所有行,而不是默认的8行。

请在此处查看TypeGuessRows http://www.connectionstrings.com/excel的链接

HKLM\Software\Wow5432Node\Microsoft\Jet\4.0\Engines\Excel将值TypeGuessRows设置为零

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13261460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档