通过上传excel导入数据到数据库
来源:互联网 发布:软件系统的定义 编辑:程序博客网 时间:2024/05/21 09:54
string savePath = Server.MapPath("~/upload/CLDR");
try
{
//判断是否选择了文件
if (fileExcel.HasFile)
{
//检查服务器上是否存在这个物理路径,如果不存在则创建
if (!System.IO.Directory.Exists(savePath))
{
System.IO.Directory.CreateDirectory(savePath);
}
string fileName = fileExcel.PostedFile.FileName; //得到上传文件的全路径 "C://材料信息表.xls"
int index = fileName.LastIndexOf(".");
if (index > 0)
{
if (fileName.Substring(index) == ".xls")
{
ViewState["fileName"] = savePath + "//" + fileExcel.FileName;
fileExcel.SaveAs(ViewState["fileName"].ToString());//保存文件
DataSet ds = ImportExcel(ViewState["fileName"].ToString(), "Sheet1");
if (ds.Tables[0].Columns.Count < 2)
{
Response.Write("<script>alert('文件格式不正确!');</script>");
return;
}
try
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string strSSLB = ds.Tables[0].Rows[i]["所属类别"].ToString().Replace(" ", "");
string strCLMC = ds.Tables[0].Rows[i]["材料名称"].ToString().Replace(" ", "");
string strGGXH = ds.Tables[0].Rows[i]["规格型号"].ToString().Replace(" ", "");
string strJHJG = ds.Tables[0].Rows[i]["计划价格"].ToString().Replace(" ", "");
string strDW = ds.Tables[0].Rows[i]["单位"].ToString().Replace(" ", "");
//组合材料信息编码
string clxxId = "";
string idsql = "select * from wz_clxx where PID='" + pid + "'";
DataSet idds = general.Select(idsql);
if (idds.Tables[0].Rows.Count > 0)
{
switch (Convert.ToString(idds.Tables[0].Rows.Count + 1).Length)
{
case 1:
clxxId = pid + "00" + Convert.ToString(idds.Tables[0].Rows.Count + 1); //一级往后加00
break;
case 2:
clxxId = pid + "0" + Convert.ToString(idds.Tables[0].Rows.Count + 1); //二级往后加0
break;
default:
clxxId = pid + Convert.ToString(idds.Tables[0].Rows.Count + 1); //再多级直接加
break;
}
}
else
{
clxxId = pid + "001";
}
//根据计量单位名称查询其编码
string jldwSql = "select * from XT_ZDK where codingClass='JLDW' and Name='" + strDW + "'";
DataSet jldwDS = general.Select(jldwSql);
//当该单位名称已经登记时,直接存储,否则,略过该条信息
if (jldwDS.Tables[0].Rows.Count > 0)
{
string jldwID = jldwDS.Tables[0].Rows[0]["ID"].ToString();
string sql = "";
sql += "declare @count int ";
sql += "select @count=count(*) from wz_clxx where name='" + strCLMC + "' and Materialmodel='" + strGGXH + "' and state=0 ";
sql += "if @count=0 begin ";
sql += "insert into wz_clxx (id,PID,name,Materialmodel,Price,Unit,Appenddate) values ('" + clxxId + "','" + pid + "','" + strCLMC + "','" + strGGXH + "'," + Convert.ToDouble(strJHJG) + ",'" + jldwID + "','" + DateTime.Now.Date + "') ";
sql += "end";
general.Update(true, sql);
}
}
}
catch
{
Response.Write("<script>alert('导入不成功:该EXCEL文档表头信息有错误,应为[所属类别]、[材料名称]、[规格型号]、[计划价格]、[单位]!');</script>");
return;
}
}
else
{
Response.Write("<script>alert('请选择上报.xls文件格式!');</script>");
return;
}
}
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "filescript", "window.top.callBack('" + fileName + "');", true);
File.Delete(ViewState["fileName"].ToString());
Response.Write("<script>alert('数据导入成功!');</script>");
}
}
catch (Exception ex)
{
//Response.Write("<script>alert('导入失败,上传目录属性为只读!');</script>");
Response.Write(ex.ToString());
return;
}
public DataSet ImportExcel(string strFileName, string sheet)
{
DataSet ds = new DataSet();
if (strFileName != "")
{
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFileName + ";Extended Properties=/"Excel 8.0;IMEX=1/" ";
string sql = "select * from [" + sheet + "$]";
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
Response.Write("数据格式不对!" + ex.Message);
}
return ds;
}
else
{
return null;
}
}
- 通过上传excel导入数据到数据库
- 上传Excel数据导入到数据库
- 上传Excel并将指定数据导入到数据库
- PHP上传Excel文件导入数据到MySQL数据库示例
- 导入Excel数据到数据库
- 导入excel数据到数据库
- 导入excel数据到数据库
- excel-从excel导入数据到数据库
- 上传excel表并导入到数据库
- 上传Excel文件并导入到数据
- Excel数据通过plsql 导入到Oracle
- Excel数据通过plsql导入到Oracle
- 从excel导入数据到数据库
- 将Excel数据导入到数据库中
- Excel导入数据到SQL数据库
- Excel数据导入到数据库乱码问题
- 从excel导入数据到数据库
- EXCEL 导入数据到数据库表
- Linux系统中JVM内存2GB的限制
- Oracle的连接和验证方式
- A good artical about Flex profiling
- JSTL
- 通过上传excel导入数据到数据库
- ganglia安装笔记
- 联想天逸F41AT2390装server2008R2(win7核心)所遇到的问题
- [转]Google Chrome 源码下载
- 唐骏是现代社会的缩影
- Linux内核/模块开发常见问题集(FAQ)
- GIS软件的编写2
- CSDN 源码格式化测试
- 【动态规划】【RQNOJ】装箱问题