C# заменить SQLXMLBULKLOADLib набором данных - PullRequest
0 голосов
/ 16 января 2020

в старом программном обеспечении мы используем SQLXMLBULKLOADLib для импорта xml файлов, подобных этому:

var objBL = new SQLXMLBulkLoad4Class
            {
                ConnectionString = string.Format("Provider=sqloledb;Server={0};Database={1};uid={2};pwd={3}",
                                                    Server,
                                                    FromDatabaseName,
                                                    UserName,
                                                    Password),

                ErrorLogFile = errorFile,
                KeepIdentity = false
            };
            objBL.Execute(xsdFile, fileName);

однако этот тип взаимодействия вызывает у меня много проблем, и я хочу заменить этот метод. Я попробовал что-то вроде этого

var ds = new DataSet();
            ds.ReadXmlSchema(xsdFile);
            ds.ReadXml(fileName);

            using (var bulkCopy = new SqlBulkCopy($"Data Source={Server};Initial Catalog={FromDatabaseName};User ID={UserName};Password={Password};"))
            {
                foreach (DataTable dt in ds.Tables)
                {
                    bulkCopy.DestinationTableName = dt.TableName;
                    bulkCopy.WriteToServer(dt);
                }

            }

, которое почти нормально работает, но в моем файле xsd не применяется отношение Relationship. приводит ко всем видам различных ошибок. Можно ли по-прежнему применять эти отношения, не используя этот модуль взаимодействия?

Заранее спасибо

...