Я пытаюсь использовать bulkCopy.WriteToServer()
для копирования данных из моего удаленного SQL Server Express в локальный SQL Server Express, но данные не записываются в мою локальную базу данных SQL Server Express.bulkCopy.WriteToServer не копирует
Код перепрыгивает через метод WriteToServer()
мгновенно ... Я понятия не имею, если он терпит неудачу на внутренней стороне и не отображается сообщение об ошибке, хотя
Я прочитал How to duplicate a SQL Server 2000 table programatically using .NET 2.0? и я использую очень похожий код. Хотя я использую SQL Server 2008 Express, на удаленный и локальный для SQL Server 2014 Экспресс:
using (SqlConnection remoteConnection = new SqlConnection(remoteConnectionString))
{
var query = "SELECT * FROM information_schema.tables WHERE table_type = 'base table'";
SqlCommand commandGetTables = new SqlCommand(query, remoteConnection);
try
{
remoteConnection.Open();
SqlDataReader results = commandGetTables.ExecuteReader();
while (results.Read())
{
tables.Add(results.GetString(2));
}
results.Close();
}
catch (Exception ex)
{
//stuff
}
finally
{
remoteConnection.Close();
}
remoteConnection.Open();
foreach (var table in tables)
{
// Get data from the source table as a SqlDataReader.
var commandSourceData = new SqlCommand("SELECT * FROM " + table + ";", remoteConnection);
var reader = commandSourceData.ExecuteReader();
using (SqlConnection destinationConnection = new SqlConnection(destinationConnectionString))
{
destinationConnection.Open();
using (var bulkCopy = new SqlBulkCopy(destinationConnection))
{
bulkCopy.DestinationTableName = table;
try
{
// Write from the source to the destination.
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
//stuff
}
finally
{
//stuff removed for this post
}
}
}
}
remoteConnection.Close();
}
return true;
Я знаю, что это может быть предметом SQL инъекции и т.д., но это приложение используется только мной, а не вопрос здесь ,
Что я делаю неправильно?
Редактировать
Я проверил значение читателя (var reader = commandSourceData.ExecuteReader();
) и имеет записи, как я бы ожидать, что означает, что он читает с пульта дистанционного управления нормально.
Какое сообщение об ошибке вы получаете? Код, если это настоящий проверенный код, выдает сообщения об ошибках. – MatthewMartin
Нет сообщений об ошибках. У меня есть точки останова во всех моих операциях catch, которые записывают журналы. @MatthewMartin – MyDaftQuestions
Вы не указали отображение –