sql 通过存储过程和自定义类型批量新增数据

1,建立存储过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
create PROCEDURE [dbo].[p_Company_Insert]
@CompanyCollection [CompanyTableType] READONLY
AS
INSERT INTO tb_Company (
            [cpID]
           ,[cpHiID]
           ,[cpBuySellTypeID]
           ,[cpName]
           ,[cpShortName]
           ,[cpIndustry]
           ,[cpSell]
           ,[cpBuy]
           ,[cpAddressID]
           ,[cpAddress]
           ,[cpPost]
           ,[cpTel]
        )
 
    SELECT
            oc.[cpID]
           ,oc.[cpHiID]
           ,oc.[cpBuySellTypeID]
           ,oc.[cpName]
           ,oc.[cpShortName]
           ,oc.[cpIndustry]
           ,oc.[cpSell]
           ,oc.[cpBuy]
           ,oc.[cpAddressID]
           ,oc.[cpAddress]
           ,oc.[cpPost]
           ,oc.[cpTel]
    FROM @CompanyCollection AS oc;
 
GO

2,建立相对应的数据类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/****** Object:  UserDefinedTableType [dbo].[CompanyTableType]    Script Date: 07/04/2014 10:20:51 ******/
CREATE TYPE [dbo].[CompanyTableType] AS TABLE(
    [cpID] [int] NOT NULL,
    [cpHiID] [int] NULL,
    [cpBuySellTypeID] [nvarchar](200) NULL,
    [cpName] [nvarchar](200) NOT NULL,
    [cpShortName] [nvarchar](200) NULL,
    [cpIndustry] [nvarchar](300) NULL,
    [cpSell] [nvarchar](200) NULL,
    [cpBuy] [nvarchar](200) NULL,
    [cpAddressID] [int] NOT NULL,
    [cpAddress] [nvarchar](300) NULL,
    [cpPost] [nvarchar](100) NULL,
    [cpTel] [nvarchar](100) NULL,
)
GO

3,执行代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/// <summary>
/// 单条添加,将datatable作为参数传进去,返回datatable的自增长编号(调用存储过程)
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
[WebMethod]
public DataTable BuySell_Insert(DataTable dt, string token)
{
    CheckLoginedS(token);
    if (dt.Rows.Count > 0 && dt.Rows != null)
    {
        tb_BuySell bs = new tb_BuySell();
        DataTable bt = bs.BuySell_Insert(dt);
        return bt;
    }
    else
    {
        return null;
    }
}
 
 
/// <summary>
/// 把datatable当参数,批量添加数据库中,返回datatable的新增行
/// </summary>
/// <param name="tb"></param>
/// <returns></returns>
public DataTable BuySell_Insert(DataTable tb)
{
    DataTable dt = null;
    CMD.CommandText = "p_BuySell_Insert";
    CMD.CommandType = CommandType.StoredProcedure;
    CMD.Parameters.Clear();
    CMD.Parameters.AddWithValue("@BuySellCollection", tb);
    dt = DB.DataTable(CMD);
    return dt;
}

  

posted @   逊老头  阅读(440)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示