c# – 如何将数据表插入SQL Server数据库表?

我已经从一些Excel文件导入数据,我已将其保存到一个datatable。现在我想将此信息保存在我的SQL Server数据库中。

我在网上看到了很多信息,但我不明白:

>有人说插入一行一行建议批量更新… etc:什么更好?
>我应该使用OLE还是SQL Server对象(如dataAdapter或连接)?

我的需要是从他的Excel文件中读取员工每周小时报告,并将其保存到一个数据库表,其中保存所有报告(每周用新记录更新数据库)。

Excel文件仅包含当前周的报告。

在数据库中创建用户定义的TableType:

CREATE TYPE [dbo].[MyTableType] AS TABLE(
    [Id] int NOT NULL,
    [Name] [nvarchar](128) NULL
)

并在Stored Ptocedure中定义一个参数:

CREATE PROCEDURE [dbo].[InsertTable]
    @myTableType MyTableType readonly
AS
BEGIN
    insert into [dbo].Records select * from @myTableType 
END

并将您的DataTable直接发送到sql server:

using (var command = new SqlCommand("InsertTable") {CommandType = CommandType.StoredProcedure})
{
    var dt = new DataTable(); //create your own data table
    command.Parameters.Add(new SqlParameter("@myTableType", dt));
    SqlHelper.Exec(command);
}

要编辑存储过程中的值,可以声明具有相同类型的局部变量,并在其中插入输入表:

DECLARE @modifiableTableType MyTableType 
INSERT INTO @modifiableTableType SELECT * FROM @myTableType

然后,您可以编辑@modifiableTableType:

UPDATE @modifiableTableType SET [Name] = 'new value'
http://stackoverflow.com/questions/9075159/how-to-insert-a-data-table-into-sql-server-database-table

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 如何将数据表插入SQL Server数据库表?