我正在尝试将C#代码中的SQLXMLBulkLoader4用于SQL 2008数据库.但由于某些原因,尽管没有抛出任何错误,它根本不会插入任何行.我已经使用了bulkloads自己的ErrorLog文件,(检查可能不会导致崩溃的任何错误),但是没有报告错误.
我有一个从供应商(基本上是产品列表)下载的XML文件,我写了一个XSD来匹配我们的数据库的字段.没有其他任何东西写入这些特定的表,没有其他使用这些文件.
我的BulkLoad代码如下所示(我X实际连接字符串值):
public void Bulkload(string schemaFile, string xmlFile, string source)
{
SQLXMLBULKLOADLib.SQLXMLBulkLoad4 bulkload = new SQLXMLBULKLOADLib.SQLXMLBulkLoad4();
try
{
bulkload.ConnectionString = "Provider=sqloledb;server=X;database=X;uid=X;pwd=X";
bulkload.ErrorLogFile = k_ArticleInfoDirectory + source + "BulkLoadError.log";
bulkload.KeepIdentity = false;
bulkload.Execute(schemaFile, xmlFile);
}
catch (Exception e)
{
Console.WriteLine("Fel i BL: " + e);
throw;
}
finally
{
bulkload = null;
}
}
Run Code Online (Sandbox Code Playgroud)
XML看起来像这样(剥离,下面的所有内容只是几个产品领域,然后是更多产品):
<?xml version="1.0" encoding="utf-8"?>
<GetProductsResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Status xmlns="http://schemas.servicestack.net/types">
<Code>0</Code>
<Message>Ok</Message>
</Status>
<NumberOfProducts xmlns="http://schemas.servicestack.net/types">9826</NumberOfProducts>
<Products xmlns="http://schemas.servicestack.net/types">
<Product>
<ProductID>1000002</ProductID>
<CreatedDate>2011-11-24 15:54</CreatedDate>
<UpdatedDate>2011-11-24 15:54</UpdatedDate>
<Title>Vi tolererar inga …Run Code Online (Sandbox Code Playgroud)