Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将通用列表上载到数据库_C#_Sql Server_Tsql_Generics - Fatal编程技术网

C# 将通用列表上载到数据库

C# 将通用列表上载到数据库,c#,sql-server,tsql,generics,C#,Sql Server,Tsql,Generics,如何将遗传列表上传到SQL数据库。两种方法都完成了,我的钱就在DataTable上了 看 这有什么作用?它如何帮助OP?显示的代码获取一个数据表并将其推送到数据库。我刚刚从链接中复制了相关代码。我对他的问题的理解是,将数据从应用程序移动到数据库的最佳方式是什么。我不是问SQL Bulk Copy做什么,我是问你的答案如何帮助OP,或者如何将其与他们(未显示)的代码集成。你没有解释前者或后者。唯一不清楚的是OP打算如何实施解决方案。“哪个更好”的问题总是“视情况而定”。我只是提供了我的观察结果,即

如何将遗传
列表
上传到SQL数据库。

两种方法都完成了,我的钱就在DataTable上了


这有什么作用?它如何帮助OP?显示的代码获取一个数据表并将其推送到数据库。我刚刚从链接中复制了相关代码。我对他的问题的理解是,将数据从应用程序移动到数据库的最佳方式是什么。我不是问SQL Bulk Copy做什么,我是问你的答案如何帮助OP,或者如何将其与他们(未显示)的代码集成。你没有解释前者或后者。唯一不清楚的是OP打算如何实施解决方案。“哪个更好”的问题总是“视情况而定”。我只是提供了我的观察结果,即从C#完成了参数化sql过程和数据表推送之后,我发现后者在我的经验中“更好”。如果列表很大,那么DataTable不是最佳选择,因为它首先在内存中复制列表。或者,如果需要在联接中使用列表(考虑使用内部联接进行筛选,而不是使用in列表,因为这需要动态SQL),那么此解决方案将根本不起作用,即使它是有效的。我认为这真的取决于你以后将如何使用数据…我想创建一个类似于此的模板-立即更改传入类型,而无需进行大量更改。胡吉无法添加答案,但这取决于列表的使用方式和大小。在这两种情况下,我都看不出使用
DataTable
有什么好处。如果列表很小,那么您拥有的XML很好,或者使用CSV并使用SQLCLR拆分器非常快(我创建的库在免费版本中有
String\u Split
String\u Split4k
)。如果你有一个很大的列表,那么请使用TVPs查看:为什么暂停——“请澄清你的具体问题或添加额外的细节,以突出你需要的内容。正如目前所写的,很难准确说出你的要求。”
// Create a table with some rows. 
        DataTable newProducts = MakeTable();

        // Create the SqlBulkCopy object.  
        // Note that the column positions in the source DataTable  
        // match the column positions in the destination table so  
        // there is no need to map columns.  
        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
        {
            bulkCopy.DestinationTableName = 
                "dbo.BulkCopyDemoMatchingColumns";

            try
            {
                // Write from the source to the destination.
                bulkCopy.WriteToServer(newProducts);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }