本文主要是介绍人事系统维护——谁有谁的表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在维护过程中,了解到需求,就是查询不同的考试要有不同的数据库,可以根据每场考试不同,把每场考试考生信息录入数据库,比如公务员考试在一张数据表中,选调生考试在另一张表中。假如再添加别的考试也可以再添加独立的数据表。
要录入的数据存放在excel表中,暂时命名为test.xlsx。这就是需要录入数据库中的数据。
系统的后台管理界面:
点击选择文件后,会弹出资源管理器,然后选择要添加的excel表,最后点击导入。打开sqlserver企业管理器,会发现在数据库中多了一张表,表名为excel表的名称。
这就可以根据需求来创建不同的数据表了,可用来分别对应不同的考试成绩查询。下面是实现这个功能的代码:
WEB层:
/// <summary>/// excel导入到数据库/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void btnModify_Click(object sender, EventArgs e){//首先要上传至服务器,根据服务器的路径来添加到数据库中string filePath = FileUpload3.PostedFile.FileName; //文件名string fileName = filePath.Substring(filePath.LastIndexOf("\\") + 1); string fileURL = "excel/" + fileName;string serverPath = Server.MapPath("excel/"); //文件的路径serverPath = serverPath + FileUpload3.FileName; //完整的文件路径和文件名if (FileUpload3.HasFile){try{//文件保存FileUpload3.PostedFile.SaveAs(serverPath); //保存至服务器}catch{Response.Write(" <script language=javascript>alert('文件保存失败 !') </script>");}BackMrgBLL bmb = new BackMrgBLL();string[] sArray = fileName.Split(new char[1] { '.' }); //将文件名分离出来string tableName = sArray[0]; //除了扩展名和“.”之外的完整文件名int b = bmb.import(tableName, serverPath);if (b != 0){Response.Write(" <script language=javascript>alert('导入成功 ') </script>");}}}
BLL层:
private readonly ImportDAL impDal = new ImportDAL();public int import(string dataTableName, string excelName){return impDal.Import(dataTableName, excelName);}
DAL层:
/// <summary>/// excel导入到数据库中/// </summary>/// <param name="dataTableName">创建的数据库的表名</param>/// <param name="excelName">excel文件的路径</param>/// <returns></returns>public int Import(string dataTableName,string excelName){string strSql = "procImport";SqlParameter[] paras=new SqlParameter[]{new SqlParameter("@tableName",dataTableName),new SqlParameter("@excel",excelName)};SqlHelper sqlhelper=new SqlHelper();return sqlhelper.ExecuteNonQuery(strSql, CommandType.StoredProcedure,paras);}
存储过程:
-- =============================================
-- Author: 刘硕
-- Create date: 2014年12月15号
-- Description: 存储过程:用来将excel表的数据导入到数据库中。
-- =============================================
ALTER PROCEDURE [dbo].[procImport]@tableName varchar(50),@excel varchar(300)AS
declare @strSQL varchar(100),@str varchar(100)
BEGIN
set @str='openrowset(''MICROSOFT.ACE.OLEDB.12.0'',''Excel 5.0;HDR=YES;IMEX=1 DATABASE='+@excel+''',[sheet1$])'
set @strSQL='select * into'+char(32)+@tableName+CHAR(32)+'from'+CHAR(32)+@str
exec(@strSQL)
END
这篇关于人事系统维护——谁有谁的表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!