2013-09-18 3 views
0

Мои строки кода (я все еще новичок.); Я пытался экспортировать таблицу на C# поэтому после поиска и попыток часов я получил эту проблемуC# SMO Executenonquery не удалось создать базу данных

private void Button_Click(object sender, EventArgs e) 
{ 
    Server server = new Server(); 

    Database sourceDB = server.Databases["KaynakDB"]; 
    Table table = sourceDB.Tables["AnaTablo"]; 

    Database targetDB = server.Databases["KopyaDB"]; 

    foreach (String query in table.Script()) 
     try 
     { 
      targetDB.ExecuteNonQuery(query); 
     } 
     catch (Exception asd) 
     { 
      MessageBox.Show(asd.Message); 
     } 
} 

Сообщение об ошибке является

FailedOperationException was unhandled 

An unhandled exception of type 'Microsoft.SqlServer.Management.Smo.FailedOperationException' 
occurred in Microsoft.SqlServer.Smo.dll 

Когда я иду на страницу «Подробности» он говорит " Ошибка ExecuteNonQuery для базы данных «KopyaDB». "

Также «try-catch» говорит то же самое.

Я что-то упустил?

+1

Почему вы используете Microsoft.SqlServer.Management? и где вы устанавливаете строку соединения? – giammin

+0

Можете ли вы дать обзор того, что вы пытаетесь сделать с помощью этого кода? – Kami

+0

@Kami Я пытаюсь скопировать таблицу из исходной базы данных в копию (без использования мастера импорта и экспорта SQL). – DearCenkay

ответ

0

table.Script() возвращает коллекцию отдельной строки запроса, поэтому сначала вы можете сохранить их в StringBuilder, а затем выполнить запрос в целом.

var sb = new StringBuilder(); 
foreach(var line in table.Script()){ 
    sb.AppendLine(line); 
} 
targetDB.ExecuteNonQuery(sb.ToString()); 

Надеюсь, это поможет.

Смежные вопросы