我已经从一些Excel文件中导入了数据,并将其保存到datatable。现在,我想将此信息保存在SQL Server数据库中。
datatable
SQL Server
我在网上看到了很多信息,但我听不懂:
OLE
dataAdapter
connection
我需要从他的Excel文件中读取员工每周工作时间报告,并将其保存到保存所有报告的数据库表中(每周用新记录更新数据库)。
Excel文件仅包含当前一周的报告。
User-Defined TableType在您的数据库中创建一个:
User-Defined TableType
CREATE TYPE [dbo].[MyTableType] AS TABLE( [Id] int NOT NULL, [Name] [nvarchar](128) NULL )
并在您的中定义一个参数Stored Procedure:
Stored Procedure
CREATE PROCEDURE [dbo].[InsertTable] @myTableType MyTableType readonly AS BEGIN insert into [dbo].Records select * from @myTableType END
并将您的DataTable直接发送到sql server:
DataTable
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:
@modifiableTableType
UPDATE @modifiableTableType SET [Name] = 'new value'