日期:2014-05-17  浏览次数:20475 次

excel导入数,身份证号码变成科学计数法了,求解决办法
//Excel导入DtataSet操作。
  public DataSet ExecleToDataSet(string filenameurl, string table)
  {
  DataSet ds = new DataSet();
  try
  {
  string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
  OleDbConnection conn = new OleDbConnection(strConn);
  OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
  odda.Fill(ds, table);
  }
  catch (Exception)
  {
  Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('Excel文件数据有误!');</script>");

  }
  return ds;
  }
如上,读完excel文件后,insert数据库,身份证一列变成了科学计数法,需用什么方法可在不改变excel文件的前提下,正确导入证件信息呢。


------解决方案--------------------
导出时前面加个单引号
------解决方案--------------------
探讨

数据库中用的是字符型,长度20位。

------解决方案--------------------
是不是与excel的数据格式有关呢,先设置下
以office2003为例,excel中选中身份证号列,选择菜单栏的“数据”》“分列”》“下一步”》“下一步”》
看到“列数据格式”》选择文本 》“完成”
------解决方案--------------------
身份证字段不应该是数字类型的,应该是文本类型的,如带X的身份证号。
所以,你导入的时候应该仍然是字符串类型,不应该出现科学计数法