上篇文章中大概的实现了第一个需求,虽然没有正式的效果出来,但总归思路是这样的,具体实现代码后面会提供。

今天我们主要实现需求分析的第二点和第三点:导入数据模块及修改数据

 

在网上我们可以找到ASP.NET 导入Excel表现在代码,只要拿过来用就可以了,在做导入功能之前,我们有必要了解导入的数据的结果是什么样的,因为我们导入的数据最后是存入数据库的,所以我们需要构建表的结果以对应导入的数据。

下面是数据的截图

ASP.NET实际项目演练(2) 

ASP.NET实际项目演练(2) 

下面就表中的一些字段进行说明:

Boltid是设备的标识

Boltname:是设备的类型

Asmid:也是一个标示

Boltnum:设备数量

A_stand:角度标准值

A_max:角度最大值

A_min:角度最小值

T_stand扭矩标准值

T_max扭矩最大值

T_min扭矩最小值

Qrkstatic:某个静态数据

Techpara:设备参数

 

VIN:设备号

Dataid:设备标识

Torque:扭矩

Angle:角度

Ok:是否可用

Gettingtime:生产时间

Logintime:登录时间

Workerid:员工号

 

于是我们就可以设计表的结构了,

对应的表结构如下:

CREATE TABLE [dbo].[BoltData](

    [id] [int] IDENTITY(1,1) NOT NULL,

    [vin] [varchar](100) NULL,

    [dataid] [float] NULL,

    [torque] [float] NULL,

    [angle] [float] NULL,

    [ok] [float] NULL,

    [gettingtime] [datetime] NULL,

    [logintime] [datetime] NULL,

    [workerid] [varchar](16) NULL,

 CONSTRAINT [PK_BoltData] PRIMARY KEY CLUSTERED

(

    [id] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

 

 

CREATE TABLE [dbo].[BoltInfo](

    [id] [int] IDENTITY(1,1) NOT NULL,

    [boltid] [varchar](50) NULL,

    [boltname] [varchar](50) NULL,

    [asmid] [float] NULL,

    [boltnum] [int] NULL,

    [a_stand] [int] NULL,

    [a_max] [int] NULL,

    [a_min] [int] NULL,

    [t_stand] [int] NULL,

    [t_max] [int] NULL,

    [t_min] [int] NULL,

    [qrkstation] [varchar](50) NULL,

    [techpara] [varchar](50) NULL,

 CONSTRAINT [PK_BoltInfo] PRIMARY KEY CLUSTERED

(

    [id] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

下面来看一下具体的导入程序及实现方法,详细的就不说了,就看主要的代码了。

if (File_Name.Length != 0 && File_Size > 0)
        {
            
string File_ExName = File_Name.Substring(File_Name.LastIndexOf("."+ 1);//扩展名
            if (File_ExName != "xls")
            {
                
return;
            }
            
else
            {
                
//上传EXCEL文件到ExcelFile目录
                DateTime now = DateTime.Now;
                
string NewName = now.ToShortDateString() + now.Hour.ToString() + now.Minute.ToString() + now.Second.ToString() + "." + File_ExName;
                
string filePath = "ExcelFile/" + NewName;
                
this.flpImportPath.PostedFile.SaveAs(Server.MapPath(@filePath));
                
//获取EXCEL文件,执行导入
                string excelConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(filePath) + ";Extended Properties=Excel 8.0";
                
string excelCmdstr = string.Format("select * from [BoltData$]");

                
string Error = "";

                
try
                {
                    OleDbConnection oleDbConnection 
= new OleDbConnection(excelConnect);
                    oleDbConnection.Open();

                    OleDbCommand excelCmd 
= new OleDbCommand(excelCmdstr, oleDbConnection);
                    OleDbDataAdapter excelDa 
= new OleDbDataAdapter(excelCmd);

                    DataTable edt 
= new DataTable();
                    excelDa.Fill(edt);
                    
int i = 0;
                    
//追加导入
                    BLL.BoltData b = new BLL.BoltData();
                    
foreach (DataRow dr in edt.Rows)
                    {
                        Model.BoltData model 
= new Model.BoltData();
                        
try
                        {
                            model.vin 
= dr[0].ToString();
                            model.dataid 
= Convert.ToInt32(dr[1]);
                            model.torque 
= dr[2].ToString();
                            model.angle 
= dr[3].ToString();
                            model.ok 
= Convert.ToInt16(dr[4]);
                            model.gettingtime 
= Convert.ToDateTime(dr[5]);
                            model.logintie 
= Convert.ToDateTime(dr[6]);
                            model.workerid 
= dr[7].ToString();

                            b.Add(model);
                        }
                        
catch (Exception e1)
                        {
                            Response.Write(
"失败:" + model.vin + "_" + model.dataid + "");
                        }
                    }
                    
this.labIsUpload.Text = "操作完成!";
                    
//删除临时的EXCEL文件
                    oleDbConnection.Close();
                }
                
catch (Exception ex)
                {
                    Response.Write(
"<BR>");
                    Response.Write(ex.Message);
                }
                
//导入结束
            }
        }
        
else
        {
            
return;
        }

相关文章: