首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将C# DataTable导入Server存储过程

将C# DataTable导入Server存储过程
EN

Stack Overflow用户
提问于 2016-07-26 08:55:05
回答 4查看 5.4K关注 0票数 1

我在C#中有一个C#,我正在尝试将它传递给Server。

我拥有的是:

代码语言:javascript
运行
复制
DataTable asd = new DataTable();

for (int i = 0; i < LocationDataList.Count; i++)
{
    asd.Columns.Add(LocationDataList[i], typeof(string));
}

command.Parameters.Add("@PLocationDataList", SqlDbType.NVarChar, -1).Value = asd;

command.ExecuteNonQuery();

这是过程T;

代码语言:javascript
运行
复制
ALTER PROCEDURE [Sade].[SPLocationInsert]
     @... INT
     ,@... VARCHAR(64)
     ,@... VARCHAR(MAX)
     ,@... INT
     ,@... INT
     ,@... INT
     ,@... INT
     ,@... INT
     ,@PLocationDataList NVARCHAR(MAX)
AS

我不知道如何传递DataTable,也不知道应该使用哪种数据类型。

提前感谢

EN

Stack Overflow用户

回答已采纳

发布于 2016-07-26 09:08:51

在Server中创建用户定义的表类型:

代码语言:javascript
运行
复制
CREATE TYPE LocationTableType AS TABLE 
( LocationName VARCHAR(50));
GO

并将此表值参数传递给存储过程:

代码语言:javascript
运行
复制
CREATE PROCEDURE [Sade].[SPLocationInsert]
 @... INT
,@... VARCHAR(64)
,@... VARCHAR(MAX)
,@... INT
,@... INT
,@... INT
,@... INT
,@... INT
,@PLocationDataList LocationTableType READONLY
AS 
    SET NOCOUNT ON
    -- insert your code here
GO

参考文献:

用户定义的表类型:https://technet.microsoft.com/en-us/library/bb522526(v=sql.105).aspx

表值参数:https://technet.microsoft.com/en-us/library/bb510489(v=sql.105).aspx

票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38585285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档