使用参数插入多行 Sql Server

2023-12-03

我试图弄清楚是否有一种方法可以在使用参数的同时在 Sql Server 中执行多个值插入,准确地说,有这样的命令:

com = new SqlCommand("insert into myTable values (@recID,@tagID)", con);
com.Parameters.Add("@recID", SqlDbType.Int).Value = recID;
com.Parameters.Add("@tagID", SqlDbType.Int).Value = tagID;
com.ExecuteNonQuery();

考虑到每个值的参数可能不同,是否有一种方法可以使用参数执行多值单个插入? (例如:tagID 可能始终不同)

我一直在互联网上搜索,但到目前为止还没有运气,提前致谢,问候。


您可以使用表值参数:如何从.net代码将表值参数传递到存储过程

首先,在 SQL Server 中创建类型:

CREATE TYPE [dbo].[myTvpType] AS TABLE 
(
    [RecordID] int,
    [TagID] int
)

以及插入数据的 C# 代码:

internal void InsertData(SqlConnection connection, Dictionary<int, int> valuesToInsert)
{
    using (DataTable myTvpTable = CreateDataTable(valuesToInsert))
    using (SqlCommand cmd = connection.CreateCommand())
    {
        cmd.CommandText = "INSERT INTO myTable SELECT RecordID, TagID FROM @myValues";
        cmd.CommandType = CommandType.Text;

        SqlParameter parameter = cmd.Parameters.AddWithValue("@myValues", myTvpTable);
        parameter.SqlDbType = SqlDbType.Structured;

        cmd.ExecuteNonQuery();
    }
}

private DataTable CreateDataTable(Dictionary<int, int> valuesToInsert)
{
    // Initialize the DataTable
    DataTable myTvpTable = new DataTable();
    myTvpTable.Columns.Add("RecordID", typeof(int));
    myTvpTable.Columns.Add("TagID", typeof(int));

    // Populate DataTable with data
    foreach(key in valuesToInsert.Key)
    {
        DataRow row = myTvpTable.NewRow();
        row["RecordID"] = valuesToInsert[key];
        row["TagID"] = key;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用参数插入多行 Sql Server 的相关文章

  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • SSRS仅显示第一行

    我在 SSRS 中有一个非常基本的报告 显示数据网格 查询正确返回多行 但报告仅显示第一行 查询就像 SELECT FROM 一样简单 我没有任何特殊的格式 并且 tablix 位于报告的详细信息部分 而不是意外的页眉或页脚 我还可以检查什
  • 在 SSIS 中使用合并任务的指南

    我有一个包含三个字段的表 其中一个是身份字段 我需要从具有其他两个字段的源中添加一些新记录 我正在使用SSIS 我认为我应该使用合并工具 因为其中一个源不在本地数据库中 但是 我对合并工具和正确的过程感到困惑 我有一个源 一个 Oracle
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 从模板切换传递的类型

    在 C 中是否可以检查传递给模板函数的类型 例如 template
  • Gwan C#,如何获取HTTP标头?

    我需要它来重写 url 以了解我正在处理哪个友好的 url 用于用户代理和其他东西 EDIT public class Gwan MethodImplAttribute MethodImplOptions InternalCall exte
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 使用具有抗锯齿功能的 C# 更改抗锯齿图像的背景颜色

    我有一个图像需要更改背景颜色 例如 将下面示例图像的背景更改为蓝色 然而 图像是抗锯齿的 所以我不能简单地用不同的颜色替换背景颜色 我尝试过的一种方法是创建第二个图像 仅作为背景 并更改其颜色并将两个图像合并为一个图像 但是这不起作用 因为
  • 如果我的应用程序安装在 SD 卡上,私人数据也在那里吗?

    我假设应用程序的私有数据 例如 SharedPreferences 和 SQLite 数据库 位于手机的内部存储而不是 SD 卡上 即使应用程序本身安装在 SD 卡上 我在任何地方都找不到对此的简单明确的确认 有人可以确认一下吗 是的 私有
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • Slick 中的 Scala 枚举(案例对象),良好实践

    假设我有一个代表一组几个有效状态的特征 将对象存储在数据库中是一个好习惯吗 存储 Int 并使用隐式函数 MappedColumnType base Int DoorState 将它们映射到 DoorState 会更好吗 trait Doo
  • 为什么以下 C 程序会出现总线错误?

    我认为这是第一个失败的 strtok 调用 好久没写C了 有点不知所措 非常感谢 include
  • 为什么匹配模板类上的部分类模板特化与没有模板匹配的另一个部分特化不明确?

    这个问题可能很难用标题中的句子来描述 但这里有一个最小的例子 include

随机推荐

  • 递归ftp下载,然后解压gz文件

    我有一个多步骤文件下载过程 我想在 R 中执行 我已经完成了中间步骤 但没有第一步和第三步 STEP 1 Recursively find all the files at an ftp site ftp prism oregonstate
  • 非时间数据的 R 运行平均值

    This is the plot I m having now 它是从这段代码生成的 ggplot data1 aes x POS y DIFF colour GT geom point facet grid CHROM scales fr
  • Tkinter - 尽管保留全局引用,但图像不会显示在按钮上

    我想在右上角放置一个按钮 并让该按钮成为图像 我了解范围 垃圾收集等 并且已经看到这里提出的所有其他问题都忽略了这一事实 但是 我尝试了多种方法 包括创建self photo并将照片声明为全局变量 实际上 我什至不相信这就是问题所在 因为我
  • 删除脚本 SQL Server 2008

    这是我正在尝试解决的情况 我有一个充满重复项的表 发生这种情况是因为相似的行是从两个不同的源加载的 这是在包中得到处理的 但我想删除那些重复的行 这里没有关键属性 我不能使用无PK 他们俩sources是克利夫兰城和俄亥俄州立大学 我有一列
  • .NET Framework 4.5 目录在哪里?

    我已经安装了 Windows 8 Visual Studio 2012 但没有 v4 5 目录 WINDIR Microsoft NET Framework 我是否做错了什么 或者 NET 4 5 与其他版本不同 如果是因为我没有安装工具
  • 分配给 $null 的对象属性不会测试 $null 的 true

    我已经开始使用 PowerShell 来完成一些事情并使用变量 null在 PowerShell 中 我在分配变量时遇到了问题 null对于类中定义的变量 测试返回false not true 示例代码 class test string
  • 无法弄清楚如何将我的非 MVC 站点从 sitemap.xml 路由到另一个 .aspx 页面

    当搜索 google 时 唯一的解决方案出现在 MVC 网站上 我的 asp net 4 0 站点不是 MVC 我希望请求 sitemap xml 加载另一个动态 aspx 页面 以便我可以动态生成 google 的链接 我花了几个小时搜索
  • 脚本语言如何使用套接字?

    Python Perl 和 PHP 全部支持TCP 流套接字 但是 假设我只有 FTP 访问权限而没有机器的 root 访问权限 那么如何在 Web 服务器 例如 Apache 运行的脚本文件中使用套接字呢 当客户端连接到特定端口时 如何调
  • Common Lisp 的复制树:哪些对象将被原始对象和副本共同引用?

    我正在阅读实用 Common Lisp 并且有一个关于 Lisp 的问题COPY TREE功能 书上给出了调用的例子 copy tree 1 2 3 4 5 6 书上解释完之后 是这么说的 如果原始内容中的 cons 单元格引用了原子值 则
  • window.focus() 在 Google Chrome 中不起作用

    只是想知道 Google Chrome 是否会支持window focus 在某一点 当我说支持时 我的意思是让它发挥作用 对它的调用不会失败 它只是不执行任何操作 所有其他主流浏览器都不存在此问题 FireFox IE6 IE8 和 Sa
  • 如何检查字符串是否是唯一标识符?

    uniqueidentifier SQL Server 是否有与 IsDate 或 IsNumeric 等效的函数 或者有什么相当于 C TryParse 的东西吗 否则我将不得不编写自己的函数 但我想确保我没有重新发明轮子 我试图涵盖的场
  • 如何按修改日期列出 Amazon S3 存储桶内容?

    大多数时候 我们会将文件加载到公共 S3 存储桶中 因此很难找出其中的数据 如何查看在特定日期上传的对象 一种解决方案可能会使用s3api 如果您的对象少于 1000 个 那么它很容易工作 否则您需要使用分页 s3api可以列出所有对象并具
  • 我可以在 cmake 时获取 CMake 为特定 vcproj 生成的 GUID 吗?

    前言 我正在尝试将我的 C csproj 与我们的 C 和 C CLI 代码库 cmake 构建的其余部分集成 我收到了反对尝试这样做的建议 因为 CMake 不能与 Visual Studio 中的 NET 很好地协作 但在实现一些自定义
  • 如何在 Postgres 兼容模式下使用 H2 作为嵌入式数据库,来自 jruby/rails

    我想启动一个 jruby rails 应用程序来使用 Postgres 但我想在开发和测试中运行时在 Postgres 兼容模式下使用 H2 在 H2 或 postgresql 中启动应用程序没有问题 但如何配置使用嵌入式 H2 数据库运行
  • 在 Bootstrap 模式中定位一个元素

    我编写了这段代码 以便当用户位于密码文本框时 他 她可以按 Enter 登录 但是 我认为因为它位于引导模式中 所以我无法使用 jQuery 选择器来定位它 任何想法 这是 HTML div class modal content div
  • Java中有生成随机字符的功能吗?

    Java有生成随机字符或字符串的功能吗 或者必须简单地选择一个随机整数并将该整数转换为ASCII代码到字符 要生成 a z 中的随机字符 Random r new Random char c char r nextInt 26 a
  • 错误:无法启动守护进程:

    错误 无法启动守护进程 无法保留足够的空间 对象堆的空间 请在项目的 Gradle 中分配更多内存gradle properties file 例如 下面的行 在gradle properties文件中 将最大 Java 堆大小设置为 1
  • iPhone:仅在横向模式下,第一次 addSubview 后,UITableViewController 无法正确旋转

    一个最小的说明性 Xcode 项目可以在github 在我的 UIWindow 上 当我添加第二个 及后续 UITableView 作为子视图时 它们无法正确旋转 因此会出现在侧面 这仅在模拟器中进行了测试 这是给您的一些代码 void a
  • Fortran 2003 中的内在赋值和多态性

    我尝试添加一个过程该模块 写者 弗拉基米尔F 它在 Fortran 2003 中实现了一个通用链表 为了方便起见 我希望能够将列表的内容作为数组输出 因此我将以下过程添加到名为的文件中的列表模块中lists f90 subroutine l
  • 使用参数插入多行 Sql Server

    我试图弄清楚是否有一种方法可以在使用参数的同时在 Sql Server 中执行多个值插入 准确地说 有这样的命令 com new SqlCommand insert into myTable values recID tagID con c