[英]Automatically define the DataTable in C# from the schema of SQL server tables?
我已经在SQL Server中有一些表,我正在编写一个C#程序来填充一些平面文件中的表。 我计划使用SQLBulkCopy
来加载表。
为SQLBulkCopy定义每个DataTable的所有列可能需要做很多工作。 是否可以从现有SQL Server表的定义中轻松地在C#中生成这些DataTable?
我不能使用Bulk insert
或bcp
因为平面文件有不同的奇怪布局,并且在插入之前必须由一些C#代码解析。
如果您想要强力方法,可以对每个表使用以下内容:
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection("Some SQLConnectionString")) {
conn.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT TOP 0 * FROM SomeTable", conn))
{
adapter.Fill(dt);
};
};
SELECT TOP 0
将仅返回没有记录的表结构。
如果您正在寻找将平面文件加载到SQL的快速方法,可以使用BULK INSERT。 只需指定一个分隔符,只要文件中的列按照与数据库表相同的顺序排列,就会自动映射出所有内容。 您确实需要一些额外的权限才能执行批量插入,但根据我的经验,这是处理流程的最快捷,最有效的方法。
BULK INSERT Database.dbo.Table
FROM 'C:\inetpub\website\file.csv'
WITH (FIELDTERMINATOR = ',')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.