将excel数据上传到sql [英] Upload excel data into sql

查看:58
本文介绍了将excel数据上传到sql的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我有以下主表(MasterTable)

ID StatusID GenderID TypeID createdBy

1 2 1 2 1



我有以下优秀数据



状态性别类型

指定男性个人

WIP女性公司





如何将日期上传到表格中(MasterTable)



子目录



1)状态大师



ID描述

1已分配

2 WIP



2)GenderMaster



ID Desc

1男

2女



)Type Master



ID Desc

1个人

2公司





请帮助..

Hi,

Iam having master table(MasterTable) below
ID StatusID GenderID TypeID createdBy
1 2 1 2 1

Iam having excel data as below

Status Gender Type
Assigned Male Individual
WIP Female Corporate


How do I upload the date into table(MasterTable)

Subtables

1)Status master

ID Desc
1 Assigned
2 WIP

2)GenderMaster

ID Desc
1 Male
2 Female

3)Type Master

ID Desc
1 Individual
2 Corporate


Please help..

推荐答案

将excel数据读取到数据表。

现在,是的你可以创建一个sp-

Read the excel data to a datatable.
Now, you can create a sp like-
CREATE PROC YourProc
(
   @Status VARCHAR(50),
   @Gender VARCHAR(50),
   @Type VARCHAR(50)
)
AS
BEGIN
   --Get Status ID
   DECLARE @StatusID INT 
   IF(EXISTS(SELECT ID FROM StatusMaster WHERE Desc=@Status))
   BEGIN
     --check if the status already exists then get the id
     SELECT @StatusID=ID FROM StatusMaster WHERE Desc=@Status
   END
   ELSE
   BEGIN
     --else insert a new entry and get the inserted id
     INSERT INTO StatusMaster VALUES(@Status)
     SELECT @StatusID = IDENT_CURRENT(‘StatusMaster’)
   END

   --Get Gender ID
   DECLARE @GenderID INT 
   IF(EXISTS(SELECT ID FROM GenderMaster WHERE Desc=@Gender))
   BEGIN
     SELECT @GenderID =ID FROM GenderMaster WHERE Desc=@Gender
   END
   ELSE
   BEGIN
     INSERT INTO GenderMaster VALUES(@Gender)
     SELECT @GenderID = IDENT_CURRENT(‘GenderMaster’)
   END

   --Get Type ID
   DECLARE @TypeID INT 
   IF(EXISTS(SELECT ID FROM TypeMaster WHERE Desc=@Type))
   BEGIN
     SELECT @TypeID =ID FROM TypeMaster WHERE Desc=@Type
   END
   ELSE
   BEGIN
     INSERT INTO TypeMaster VALUES(@Type)
     SELECT @TypeID = IDENT_CURRENT(‘TypeMaster’)
   END

   --insert data to master table
   INSERT INTO MasterTable (StatusID, GenderID, TypeID, createdBy)
   VALUES(@StatusID,@GenderID,@TypeID,'')
END





为数据表的每一行打电话。



希望,它会有所帮助:)

更新:

根据OP的要求,这里是ado.net的代码。



Call this for each row of your datatable.

Hope, it helps :)
Update:
As per OP's request here is the code for ado.net.

foreach(DataRow dr in yourDatatable.Rows)
{
    using (SqlConnection conn = new SqlConnection("Server=YourSQLServerInstanceName;DataBase=YourDBName;UserId=YourUserId;Password=YourPassword")) // replace with your connection string
    {
       conn.Open();
       SqlCommand cmd  = new SqlCommand("YourProc", conn);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add(new SqlParameter("@Status", dr["Status"].ToString()));
       cmd.Parameters.Add(new SqlParameter("@Gender", dr["Gender"].ToString()));
       cmd.Parameters.Add(new SqlParameter("@Type", dr["Type"].ToString()));
       cmd.ExecuteNonQuery();
    }
}





这应该可以胜任。如果没有,请告诉我:))



This should do your job. If not, please let me know :)


这篇关于将excel数据上传到sql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆