您的位置:首页 > 数据库

将EXCEL的数据读取出来写入数据库的实例方法

2009-08-26 16:33 766 查看
[align=center]将EXCEL的数据读取出来写入数据库的实例方法

[/align]1. 将execl数据导到入DataSet中代码实现:
1 public DataSet ExcelToDS(string Path)
2 {
3 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
4 "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
5 OleDbConnection conn = new OleDbConnection(strConn);
6 conn.Open();
7 string strExcel = "";
8 OleDbDataAdapter myCommand = null;
9 DataSet ds = null;
strExcel = "select * from [Sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds);
return ds;
}
2. 将DataSet数据导入到数据库中代码实现:
1 protected void btn_AddSalary_Click(object sender, EventArgs e)
2 {
3 bool fileOK = false;
4 String pagenum = Request.QueryString["pagenum"];
5 if (this.UpFile.PostedFile.ContentLength > 0)
6 {
7 int Pos = UpFile.PostedFile.FileName.LastIndexOf("\\") + 1;
8 String FileName = UpFile.PostedFile.FileName.Substring(Pos);
9 String FilePath = "./tmp/" + FileName;
String fileExtension = System.IO.Path.GetExtension(UpFile.FileName).ToLower();
String[] allowedExtensions = { ".xls" };
String BatchID=Request.QueryString["BatchID"];
lberror.Text = "";
foreach (String allowedExtension in allowedExtensions)
{
if (fileExtension == allowedExtension)
fileOK = true;
}

if (fileOK == true)
{
UpFile.PostedFile.SaveAs(Server.MapPath(FilePath));
UpFile.PostedFile.InputStream.Close();
DataSet execl=ExcelToDS(Server.MapPath(FilePath));
List<String> empid = new List<String>();
bool empfalse = false;
OperationResult or = new OperationResult();
String getempid = null;
for (int s = 1; s < (execl.Tables[0].Rows.Count); s++)
{
//判断是否有此员工如果有则插入工资

getempid = (TrainingService.getEmpID(execl.Tables[0].Rows[s][0].ToString()).ToString());
if (getempid != "0")
{
empid.Add(getempid);
// lbright.Text += execl.Tables[0].Rows[s][0].ToString()+ ",";
}
else
{
lberror.Text +=execl.Tables[0].Rows[s][0].ToString()+",";
empfalse = true;
}
}
if (!empfalse) //如果导入名单正确则执行循环插入值
{
foreach(String newempid in empid)
{
int i = 1;
for (int k = 0; k < (execl.Tables[0].Columns.Count); k++)
{
String SalaryItem = execl.Tables[0].Columns[k].ToString();
String SalaryItemType = null;
String SalaryValue = null;
if (k != 0 && k != 1)
{
SalaryItemType = execl.Tables[0].Rows[0][k].ToString();
}
if (k != 0 && k != 1) //姓名不插入到数据库中
{
SalaryValue = execl.Tables[0].Rows[i][k].ToString();
if (SalaryValue == null || SalaryValue == "")
{
SalaryValue = "0";
}
Dictionary<String, String> SalaryItem_Info =
DictionaryHelper.CreateDictionary("@EmpID,@ItemName,@ItemValue,@ItemType,@BatchID,@Seq",
newempid, SalaryItem, SalaryValue, SalaryItemType, BatchID, k.ToString());
bool result = SalaryService.Add_Salary_Item(SalaryItem_Info);
or.IsSuccess = result;
}
}
i++;
}
or.ResultMsg.Add("导入工资批次成功");
or.AddReturnURL("普通返回", "/manage/salary/salary_batch_list.aspx?pagenum=" + pagenum);
}
else
{
or.ResultMsg.Add("导入工资批次失败 "+lberror.Text);
or.AddReturnURL("返回到填回页", "/manage/salary/salary_item_import.aspx?BatchID=" + BatchID + "&pagenum="+pagenum);
}
Session[Constants.EXECUTE_RESULT] = or;
Server.Transfer("~/result_report.aspx");
}
else
{
WindowHelper.Alert("上传文件类型不正确!", this);
return;
}
}
else
{
WindowHelper.Alert("请选择上传的文件!", this);
return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐