c# - 如何在不声明 SQL Server 类型的情况下使用参数插入多个值?
问题描述
INSERT
正如标题所说,我正在尝试使用代码中动态构建的命令将多个值插入 SQL Server 。
该命令如下所示:
INSERT INTO xLog (value1, value2, value3)
VALUES (@xLog);
而且,在本网站的多个其他答案之后,参数@xLog
是一个数组,SqlDataRecord
其中包含要插入的值的集合(我也遵循了DataTable
同样建议的方法,结果与下面相同)。
但是,当我尝试执行此命令时,出现此错误:
表类型参数“@xLog”必须具有有效的类型名称。
...我理解这是因为 SQL Server 期望在遵循参数结构的数据库中创建自定义类型。假设我不希望出于 X 原因创建此自定义类型。
所以问题是:有没有一种方法可以在不使用自定义类型或存储过程的情况下从.net 代码中将多行插入到 SQL Server 中?
感谢您的时间。
模组注意事项:我使用 vb.net 和 c# 标签进行标记,因为我可以使用两种语言的代码。谢谢。
解决方案
您可以使用SqlBulkCopy (可能与临时表结合使用),或者传递 JSON 或 XML 文档并在 TSQL 中将其分解。
推荐阅读
- c# - 尝试在 Visual Studio 2017 中调试时出现套接字异常
- node.js - NPM -v 未在 package.json 中显示版本
- javascript - 预加载器在启动 HTML 站点之前加载所有资产
- sql - Sql,如何得到这些结果?
- visual-studio-code - 如何更改 VS Code 中的块关系线颜色
- java - R.layout.activity_main,NoClassDefFound 错误
- ffmpeg - 使用 ffmpeg 转换 SEC 文件
- python - 超出最大递归深度:Python Azure ServicePrincipalCredentials
- google-apps-script - Google HtmlService 对话框未显示
- performance - Aws S3 wget vs 分块下载速度