将手机号批量导入数据库。思路:先将要导入的文件传上项目里,然后读取文件的每行数据并插入数据库,操作完后再将上传的文件删除
文件示例:
Excel:
记事本:
 
前台代码:
  1. <div class="tab-content detail" id="divSecond" runat="server" >
  2. <fieldset >
  3. <p>
  4. <label>
  5. 选择文件</label>
  6. <asp:FileUpload ID="FileUpload1" runat="server" /><asp:RequiredFieldValidator
  7. ID="RequiredFieldValidator1" runat="server" ErrorMessage="请选择要提交的Excel文件" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
  8. </p>
  9. <p>
  10. <label>文件示例</label><img src="../images/ex_excel.jpg" />
  11. </p>
  12. </fieldset>
  13. <div class="clear"></div>
  14. <div class="clear"></div>
  15. <div style="margin-left:200px">
  16. <asp:Button ID="btnExcel" runat="server" Text="提 交" CssClass="button"
  17. onclick="btnExcel_Click" />
  18. &nbsp;&nbsp;&nbsp;
  19. <input class="button" type="button" value="返 回" onclick="javascript:window.location.href='CartList.aspx'" />
  20. </div>
  21.  
  22. </div>
  23.  
  24. <div class="tab-content detail" id="divThird" runat="server" >
  25.  
  26. <fieldset >
  27. <p>
  28. <label>
  29. 选择文件</label>
  30. <asp:FileUpload ID="FileUpload2" runat="server" /> <asp:RequiredFieldValidator
  31. ID="RequiredFieldValidator2" runat="server" ErrorMessage="请选择要提交的tTXT文件"
  32. ControlToValidate="FileUpload2"></asp:RequiredFieldValidator>
  33. </p>
  34. <p>
  35. <label>文件示例</label><img src="../images/ex_txt.jpg" />
  36. </p>
  37. </fieldset>
  38.  
  39. <div class="clear"></div>
  40.  
  41. <div class="clear"></div>
  42.  
  43. <div style="margin-left:200px">
  44. <asp:Button ID="btnNotepad" runat="server" Text="提 交" CssClass="button"
  45. onclick="btnNotepad_Click" />
  46. &nbsp;&nbsp;&nbsp;
  47. <input class="button" type="button" value="返 回" onclick="javascript:window.location.href='CartList.aspx'" />
  48. </div>
  49. </div>

后台代码

  1. //Excel上传
  2. protected void btnExcel_Click(object sender, EventArgs e)
  3. {
  4. string backStr= UploadFile(FileUpload1, "Excel",);
  5. if (backStr == "-1")
  6. {
  7. //这里是放返回消息的,改为对应放消息的方式就行了,Js这个类就不上传了
  8. //如  Response.Write("<script>alert('请选择要提交的Excel文件')</script>");
    Js.ShowSureMsgBox(this.Page,"请选择要提交的Excel文件");
  9. return;
  10. }
  11. else if (backStr == "-2")
  12. {
  13. Js.ShowSureMsgBox(this.Page, "请选择.xls或.xlsx类型文件");
  14. return;
  15. }
  16. else
  17. {
  18. string url = backStr; //绝对路径
  19. DataTable dt = ExcelToDataSet(url);
  20.  
  21. if (dt.Rows.Count > )
  22. {
  23.  
  24.  for (int i = ; i < dt.Rows.Count; i++)
                         {
                              //读取每行数据         
                               string phoneNum= dt.Rows[i][].ToString();            
                         }  
  25. }
  26. else
  27. {
  28.  
  29. Js.ShowSureMsgBox(this.Page, "文件内容为空");
  30. }
  31. File.Delete(url); //删除上传的文件
  32.  
  33. }
  34. }
  35.  
  36. //记事本上传
  37. protected void btnNotepad_Click(object sender, EventArgs e)
  38. {
  39. string backStr = UploadFile(FileUpload2, "TXT",);
  40. if (backStr == "-1")
  41. {
  42. Js.ShowSureMsgBox(this.Page, "请选择要提交的TXT文件");
  43. return;
  44. }
  45. else if (backStr == "-2")
  46. {
  47. Js.ShowSureMsgBox(this.Page, "请选择.txt类型文件");
  48. return;
  49. }
  50. else
  51. {
  52. string url = backStr; //绝对路径
  53. DataTable dt = ReadTXT(url);
  54. if (dt.Rows.Count > )
  55. {
  56. for (int i = ; i < dt.Rows.Count; i++)
  57. {
  58. //读取每行数据         
    string phoneNum= dt.Rows[i][].ToString();
    }
    }
  59. else
  60. {
  61. Js.ShowSureMsgBox(this.Page, "文件内容为空");
  62. }
  63. File.Delete(url); //删除上传的文件
  64.  
  65. }
  66. }
  67.  
  68. //上传文件
  69. public string UploadFile(FileUpload FileUploadName, string varfilename,int type)
  70. {
  71.  
  72. if (FileUploadName.HasFile)//判断是否有上传文件
  73. {
  74. string fileExtension = System.IO.Path.GetExtension(FileUploadName.FileName).ToLower();//获取文件的后缀名
  75. if (type == )
  76. {
  77. if (fileExtension != ".xls" && fileExtension != ".xlsx")
  78. {
  79. return "-2";
  80. }
  81. }
  82. if (type == )
  83. {
  84. if (fileExtension != ".txt")
  85. {
  86. return "-2";
  87. }
  88. }
  89. string fpath = System.Web.HttpContext.Current.Server.MapPath("/Manager/Uploadfiles/" + varfilename + "/");//图片存储文件夹路径,需要按照不同的需要进行相应的修改
  90.  
  91. if (!Directory.Exists(fpath))//查看存储路径的文件是否存在
  92. {
  93. Directory.CreateDirectory(fpath); //创建文件夹,并上传文件
  94. }
  95. string time = DateTime.Now.ToString("yyyyMMddhhmmssfff");//使用时间定义上传图片的名字
  96. string picturename = time + fileExtension;
  97.  
  98. string newFilePath = fpath + picturename; //文件保存路径
  99.  
  100. FileUploadName.SaveAs(newFilePath);
  101.  
  102. return newFilePath; //绝对路径
  103.  
  104. }
  105. else
  106. {
  107. return "-1"; //没有文件
  108. }
  109.  
  110. }
  111.  
  112. //读取Excel数据
  113. public DataTable ExcelToDataSet(string filename)
  114. {

  115. //string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filename + ";Extended Properties=Excel 8.0";
  116.  //解决Excel混合类型问题。参考 http://blog.csdn.net/ranshouxu/article/details/6115039              
    string strCon = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";  
    OleDbConnection conn = new OleDbConnection(strCon);
  117.  
  118. conn.Open();
  119.  
  120. //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
  121.  
  122. DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
  123.  
  124. //包含excel中表名的字符串数组
  125.  
  126. string[] strTableNames = new string[dtSheetName.Rows.Count];
  127.  
  128. for (int k = ; k < dtSheetName.Rows.Count; k++)
  129. {
  130.  
  131. strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
  132.  
  133. }
  134.  
  135. OleDbDataAdapter myCommand = null;
  136.  
  137. DataTable dt = new DataTable();
  138.  
  139. //从指定的表明查询数据,可先把所有表明列出来供用户选择
  140.  
  141. string strExcel = "select * from [" + strTableNames[] + "]";
  142.  
  143. myCommand = new OleDbDataAdapter(strExcel, strCon);
  144.  
  145. myCommand.Fill(dt);
  146. conn.Close();
  147.  
  148. return dt;
  149.  
  150. }
  151.  
  152. //读取记事本数据
  153. public DataTable ReadTXT(string dirTXT)
  154. {
  155. //StreamReader objReader = new StreamReader(dirTXT);
  156. // 路径,编码
      StreamReader objReader = new StreamReader(dirTXT, System.Text.Encoding.GetEncoding("GB2312")); //解决中文问题。
    System.Data.DataTable dt = new System.Data.DataTable();
  157. dt.Columns.Add("DN", System.Type.GetType("System.String"));
  158.  
  159. string sLine = "";
  160.  
  161. while (sLine != null)
  162. {
  163. sLine = objReader.ReadLine();
  164. if (sLine != null && !sLine.Equals(""))
  165. {
  166. DataRow dr = dt.NewRow();
  167. dr[] = sLine;
  168. dt.Rows.Add(dr);
  169. }
  170. }
  171.  
  172. objReader.Close();
  173. return dt;
  174. }

感谢楼主的提醒,关于Excel是混合类型时造成数据丢失(有些数据行读取为空)的问题和记事本读取中文乱码问题,经过网上搜索已解决了,如果发现还有哪些不足的欢迎提点,有解决方法的贴出来分享~~~谢谢大家啦

 

Excel、记事本数据导入到数据库的更多相关文章

  1. 把Excel的数据导入到数据库

    将Excel作为数据源,将数据导入数据库,是SSIS的一个简单的应用,下图是示例Excel,数据列是code和name 第一部分,Excel中的数据类型是数值类型 1,使用SSDT创建一个packag ...

  2. Excel表格数据导入Mysql数据库的方法

    1.使用Navicat 连接需要导入的数据库. 2.excel 列的名字最好和数据库的名字一致,便于我们直观的查看好理解.   第一步,先创建好表,和准备好对应的excel文件.在Navicat 中选 ...

  3. Excel表格数据导入MySQL数据库

    有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直 ...

  4. Java版将EXCEL表数据导入到数据库中

    1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls ...

  5. java读取excel文件数据导入mysql数据库

    这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...

  6. 如何把 excel 的数据导入到数据库里面去

    1. 把 excel 另存为 .csv 格式 2. 用 Notepad 打开 .csv 文件, 第一行就是全部的字段 3. 创建表结构 create table yu_rt_01 as select ...

  7. 将excel的数据导入到数据库后都乱码了是怎么回事

    将excel内容首先保存成csv格式,然后在MySQL数据库中导入,结果汉字出现了乱码. 解决过程: 1.csv文件以txt形式打开,另存为,选择utf-8编码. 2.数据库,设置,collation ...

  8. 将 excel文件数据导入MySQL数据库中

    第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...

  9. 将Excel中数据导入数据库(二)

    在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...

随机推荐

  1. NSAttributeString创建各种文字效果

    NSDictionary *attributes =@{ NSForegroundColorAttributeName: [UIColorredColor], NSFontAttributeName: ...

  2. Machine Learning With Spark学习笔记(提取10万电影数据特征)

    注:原文中的代码是在spark-shell中编写运行的,本人的是在eclipse中编写运行,所以结果输出形式可能会与这本书中的不太一样. 首先将用户数据u.data读入SparkContext中.然后 ...

  3. 挖一挖不经常使用到而又非常有用的重载-Split

    Split这个基本上全部的程序开发者都用到,一般使用单字符和长字符串拆分字符串的较多.事实上另一个重载很好用.那就是多种组合字符来进行拆分. 比如: "aaaaaaaaaa{@}bbbbbb ...

  4. Android 调用系统邮件,发送邮件到指定邮箱

    在项目中,最后有一个联络我们,要求是点击号码还有邮箱地址能够发送邮件,这时候解决的方案其实有两种,一种是调用系统发邮件的软件,可以添加邮箱账号就可以发送邮件:第二种是使用javamail来发送邮件.在 ...

  5. Eclipse 出错 Error:Could not create the Java Virtual Machine Error:A fatal exception has occurred

    提示如下: scala compile server. error:could not create the java machine.Error: A fatal exception has occ ...

  6. swift项目第十天:网络请求工具类的封装

    import UIKit /* 必须先导入头文件:import AFNetworking */ import AFNetworking //MARK:-0:定义枚举:以枚举定义请求网络的get和pos ...

  7. 结合Wireshark捕获分组深入理解TCP/IP协议栈之TCP协议(TCP报文格式+三次握手实例)

    摘要:     本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述     TCP是面向连接的可靠 ...

  8. MFC切换图片防止闪烁

    处理WM_ERASEBKGND消息,在消息处理函数中return TRUE;

  9. 【3005】拦截导弹问题(noip1999)

    Time Limit: 3 second Memory Limit: 2 MB 某国为了防御帝国的导弹袭击,开发出一种导弹拦截系统,但是这种拦截系统有一个缺陷:虽然他的第一发炮弹能达到任意的高度,但是 ...

  10. [Angular Unit Testing] Debug unit testing -- component rendering

    If sometime you want to log out the comonent html to see whether the html render correctly, you can ...