C# 使用存储过程在MS-SQL Server中插入大型字典

C# 使用存储过程在MS-SQL Server中插入大型字典,c#,sql-server,dictionary,C#,Sql Server,Dictionary,我随后将值插入SQL server。但是我有一个大字典(带有键值对“列名和列值”),大约有100个条目,我想插入SQL server 是否有任何方法可以使用此字典直接插入数据库?您有一个类似的问题,答案显示了如何将字典传递给存储过程的示例。但作为字典100项的大小,在我看来并不“大”。也许您可以调用一个简单的存储过程100次,一次只插入一项 或者根本没有任何存储过程,直接从C代码插入,或者使用带有“INSERT”语句的SqlCommands作为命令,或者使用SqlBulkCopy。这是一种简单的

我随后将值插入SQL server。但是我有一个大字典(带有键值对“
列名
列值
”),大约有100个条目,我想插入SQL server

是否有任何方法可以使用此字典直接插入数据库?

您有一个类似的问题,答案显示了如何将字典传递给存储过程的示例。但作为字典100项的大小,在我看来并不“大”。也许您可以调用一个简单的存储过程100次,一次只插入一项


或者根本没有任何存储过程,直接从C代码插入,或者使用带有“INSERT”语句的SqlCommands作为命令,或者使用SqlBulkCopy。

这是一种简单的方法
myDictionary
具有键值对

SqlConnection sqlConn = new SqlConnection("[Your Connection String]");
SqlCommand sqlcomm = new SqlCommand("[Your SP name]", sqlConn);
sqlcomm.CommandType = CommandType.StoredProcedure;
foreach (KeyValuePair<string, object> itm in myDictionary)
{
    sqlcomm.Parameters.AddWithValue(itm.Key, itm.Value);
}
sqlcomm.CommandText = spName;

sqlConn.Open();
sqlcomm.ExecuteNonQuery();
SqlConnection sqlConn=newsqlconnection(“[您的连接字符串]”);
SqlCommand sqlcomm=新的SqlCommand(“[您的SP名称]”,sqlConn);
sqlcomm.CommandType=CommandType.StoredProcess;
foreach(myDictionary中的KeyValuePair itm)
{
sqlcomm.Parameters.AddWithValue(itm.Key,itm.Value);
}
sqlcomm.CommandText=spName;
sqlConn.Open();
sqlcomm.ExecuteNonQuery();

是否希望在c#中上载excel?在sql server中导入数据?我不清楚您是否需要从应用程序中执行此操作,或者您是否只需要将此数据导入sql并可以从命令提示符/management studio中执行此操作。另外,您已经将其标记为mysql和SQLServer,但在标题中列出了MS-sql(与本文相对应)。请澄清您使用的数据库。Hi@pstrjds我有一个wpf应用程序。我想用C代码来做。我正在使用Microsoft SQL Server数据库。您好@DenishParvadia,它不是数据导入。我正在搜索C代码。你好@Jorge Y。谢谢你的回答。根据您提到的类似问题,是否需要将字典转换为DataTable?我们不能只使用字典而不转换为DataTable吗?嗨@Jorge Y。我不能将简单的SqlCommands与Insert语句一起使用。必须使用存储过程插入。恐怕您必须将字典转换为其他内容才能将其传递给存储过程。在该链接中还有其他方法,比如使用XML,但对我来说,DataTable对象看起来更简单。同样,如果不要求在一个过程调用中插入所有字典,我会对每个字典元素进行一次调用。