如何插入从分配给 Dictionary<int, int> 的 SQL 表中提取的数据?(ASP.Net)
Posted
技术标签:
【中文标题】如何插入从分配给 Dictionary<int, int> 的 SQL 表中提取的数据?(ASP.Net)【英文标题】:How Do I Insert Data I Pulled From A SQL Table I Assigned To A Dictionary<int, int>?(ASP.Net) 【发布时间】:2021-10-06 05:05:56 【问题描述】:我将一个 SQL Server 表中的两个 int 值(CampaignId
和 LinkId
)分配给了一个 Dictionary<int,int>
变量,现在我试图将它插入到另一个 SQL Server 表中。我需要做什么才能将分配给字典的每个数据值放入
command.parameters.Add(@UserAgent, ????)
和
command.parameters.Add(@LinkId, ????)
我的代码
string queryString = "SELECT CampaignId, LinkId FROM TrackClick WHERE UserAgent IS NOT NULL;";
var UserDetails = new Dictionary<int, int>();
using (SqlConnection connection = new SqlConnection(con))
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
using SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
UserDetails.Add(reader.GetInt32(0), reader.GetInt32(1));
var insertString = @"INSERT INTO dbo.User_Details (CampaignId, LinkId,)
VALUES (@CampaignId, @LinkId)";
using var connection = new SqlConnection(con);
//code to insert the insertString
SqlCommand command = new SqlCommand(insertString, connection);
command.Parameters.AddWithValue("@CampaignId",/* ????*/);
command.Parameters.AddWithValue("@LinkId",/* ????*/);
connection.Open();
// insert bulk Records into DataBase.
command.ExecuteNonQuery();
connection.Close();
【问题讨论】:
【参考方案1】:对于多行,您可以尝试使用 INSERT SELECT 语句。这将摆脱查询的参数化,这通常是一件坏事。但是您没有插入用户输入,因此 SQL 注入不是那么重要。 所以你只需要遍历你的字典并在 SQL 语句上进行字符串连接
insert into dbo.User_Details ( CampaignId, LinkId,)
SELECT @CampaignId1, @LinkId1
UNION ALL
SELECT @CampaignId2, @LinkId2
等等……
【讨论】:
以上是关于如何插入从分配给 Dictionary<int, int> 的 SQL 表中提取的数据?(ASP.Net)的主要内容,如果未能解决你的问题,请参考以下文章
如何将从函数返回的布尔值分配给 PostgreSQL 9.4 中的变量?
如何将插入的输出值分配给 sql server 中的变量? [复制]
leetcode 720 - Longest Word in Dictionary