将手机号批量导入数据库。思路:先将要导入的文件传上项目里,然后读取文件的每行数据并插入数据库,操作完后再将上传的文件删除
文件示例:
Excel:
记事本:
 
前台代码:
          <div class="tab-content detail" id="divSecond" runat="server" >
<fieldset >
<p>
<label>
选择文件</label>
<asp:FileUpload ID="FileUpload1" runat="server" /><asp:RequiredFieldValidator
ID="RequiredFieldValidator1" runat="server" ErrorMessage="请选择要提交的Excel文件" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
</p>
<p>
<label>文件示例</label><img src="../images/ex_excel.jpg" />
</p>
</fieldset>
<div class="clear"></div>
<div class="clear"></div>
<div style="margin-left:200px">
<asp:Button ID="btnExcel" runat="server" Text="提 交" CssClass="button"
onclick="btnExcel_Click" />
&nbsp;&nbsp;&nbsp;
<input class="button" type="button" value="返 回" onclick="javascript:window.location.href='CartList.aspx'" />
</div> </div> <div class="tab-content detail" id="divThird" runat="server" > <fieldset >
<p>
<label>
选择文件</label>
<asp:FileUpload ID="FileUpload2" runat="server" /> <asp:RequiredFieldValidator
ID="RequiredFieldValidator2" runat="server" ErrorMessage="请选择要提交的tTXT文件"
ControlToValidate="FileUpload2"></asp:RequiredFieldValidator>
</p>
<p>
<label>文件示例</label><img src="../images/ex_txt.jpg" />
</p>
</fieldset> <div class="clear"></div> <div class="clear"></div> <div style="margin-left:200px">
<asp:Button ID="btnNotepad" runat="server" Text="提 交" CssClass="button"
onclick="btnNotepad_Click" />
&nbsp;&nbsp;&nbsp;
<input class="button" type="button" value="返 回" onclick="javascript:window.location.href='CartList.aspx'" />
</div>
</div>

后台代码

   //Excel上传
protected void btnExcel_Click(object sender, EventArgs e)
{
string backStr= UploadFile(FileUpload1, "Excel",);
if (backStr == "-1")
{
//这里是放返回消息的,改为对应放消息的方式就行了,Js这个类就不上传了
//如  Response.Write("<script>alert('请选择要提交的Excel文件')</script>");
Js.ShowSureMsgBox(this.Page,"请选择要提交的Excel文件");
return;
}
else if (backStr == "-2")
{
Js.ShowSureMsgBox(this.Page, "请选择.xls或.xlsx类型文件");
return;
}
else
{
string url = backStr; //绝对路径
DataTable dt = ExcelToDataSet(url); if (dt.Rows.Count > )
{  for (int i = ; i < dt.Rows.Count; i++)
                     {
                          //读取每行数据         
                           string phoneNum= dt.Rows[i][].ToString();            
                     }  
}
else
{ Js.ShowSureMsgBox(this.Page, "文件内容为空");
}
File.Delete(url); //删除上传的文件 }
} //记事本上传
protected void btnNotepad_Click(object sender, EventArgs e)
{
string backStr = UploadFile(FileUpload2, "TXT",);
if (backStr == "-1")
{
Js.ShowSureMsgBox(this.Page, "请选择要提交的TXT文件");
return;
}
else if (backStr == "-2")
{
Js.ShowSureMsgBox(this.Page, "请选择.txt类型文件");
return;
}
else
{
string url = backStr; //绝对路径
DataTable dt = ReadTXT(url);
if (dt.Rows.Count > )
{
for (int i = ; i < dt.Rows.Count; i++)
{
//读取每行数据         
string phoneNum= dt.Rows[i][].ToString();
}
}
else
{
Js.ShowSureMsgBox(this.Page, "文件内容为空");
}
File.Delete(url); //删除上传的文件 }
} //上传文件
public string UploadFile(FileUpload FileUploadName, string varfilename,int type)
{ if (FileUploadName.HasFile)//判断是否有上传文件
{
string fileExtension = System.IO.Path.GetExtension(FileUploadName.FileName).ToLower();//获取文件的后缀名
if (type == )
{
if (fileExtension != ".xls" && fileExtension != ".xlsx")
{
return "-2";
}
}
if (type == )
{
if (fileExtension != ".txt")
{
return "-2";
}
}
string fpath = System.Web.HttpContext.Current.Server.MapPath("/Manager/Uploadfiles/" + varfilename + "/");//图片存储文件夹路径,需要按照不同的需要进行相应的修改 if (!Directory.Exists(fpath))//查看存储路径的文件是否存在
{
Directory.CreateDirectory(fpath); //创建文件夹,并上传文件
}
string time = DateTime.Now.ToString("yyyyMMddhhmmssfff");//使用时间定义上传图片的名字
string picturename = time + fileExtension; string newFilePath = fpath + picturename; //文件保存路径 FileUploadName.SaveAs(newFilePath); return newFilePath; //绝对路径 }
else
{
return "-1"; //没有文件
} } //读取Excel数据
public DataTable ExcelToDataSet(string filename)
{

//string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filename + ";Extended Properties=Excel 8.0";
 //解决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); conn.Open(); //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等  DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //包含excel中表名的字符串数组 string[] strTableNames = new string[dtSheetName.Rows.Count]; for (int k = ; k < dtSheetName.Rows.Count; k++)
{ strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString(); } OleDbDataAdapter myCommand = null; DataTable dt = new DataTable(); //从指定的表明查询数据,可先把所有表明列出来供用户选择 string strExcel = "select * from [" + strTableNames[] + "]"; myCommand = new OleDbDataAdapter(strExcel, strCon); myCommand.Fill(dt);
conn.Close(); return dt; } //读取记事本数据
public DataTable ReadTXT(string dirTXT)
{
//StreamReader objReader = new StreamReader(dirTXT);
// 路径,编码
  StreamReader objReader = new StreamReader(dirTXT, System.Text.Encoding.GetEncoding("GB2312")); //解决中文问题。
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("DN", System.Type.GetType("System.String")); string sLine = ""; while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null && !sLine.Equals(""))
{
DataRow dr = dt.NewRow();
dr[] = sLine;
dt.Rows.Add(dr);
}
} objReader.Close();
return dt;
}

感谢楼主的提醒,关于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. mysql 配置,还得多看看~

    http://blog.chinaunix.net/uid-20639775-id-154429.html

  2. Redis学习笔记--Hash(五)

    Redis的数据是通过key-value的方式存储的,对于value的数据类型有字符串.Hash.list.set.sortedSet在redis命令语句中,语句是忽略大小写的,但是key是不可以忽略 ...

  3. Can't bind to 'formGroup' since it isn't a known property of 'form'

    在APP.module.ts中引入FormsModule, ReactiveFormsModule. import { BrowserModule } from '@angular/platform- ...

  4. struts2注入类

    struts2是能够注入一个对象的,那么一定须要继承ModelDriven的泛型接口. package com.test.action; import com.opensymphony.xwork2. ...

  5. 使用u盘量产工具修复写保护的u盘

    自己的u盘突然提示写保护,而且也没有写保护开关,怎么都写不进文件,试了很多办法都无法去除写保护,最后找了一个u盘量产工具,搞定: 插上u盘后,会检测到u盘,点“开始"后静静等待它完成,u盘又 ...

  6. 12.1、USB驱动——描述符、URB、管道

    大家常说,一个设备通常有多个配置,配置通常有多个接口,接口通常有多个端点.接口代表逻辑上的设备,比如声卡分为 录音和播放.访问设备时,访问的是某个接口(逻辑设备).除了端点0之外,每个端点只支持一个传 ...

  7. DOS命令具体解释

    net use $">\\ip\ipc$Content$nbsp;" " /user:" " 建立IPC空链接   net use $" ...

  8. [AngularJS NG-redux] Integrate Redux Devtools

    In this lesson, we are going to learn how to integrate Redux Devtools into our Angular application. ...

  9. fastjson排序 Map多层嵌套转换自动排序问题终极解决方案

    阅读更多 最近项目中用到了fastjson(1.2.15)需要将前端多层嵌套json转换为map,由于map的无序性,想了很多办法,最终找到使用 Map m= JSONArray.parseObjec ...

  10. JAVA中try-catch异常逃逸

    有时候一些小的细节,确实比较纠结,对于try-catch-finally代码块中代码依次执行,当try中有exception抛出时,将会有catch拦截并执行,如果没有catch区块,那么except ...