1

私のコード行 (私はまだ新人です。) ; C#でテーブルをエクスポートしようとしていたので、何時間も検索して試した後、この問題が発生しました

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

「詳細」ページに移動すると、「データベース "KopyaDB" の ExecuteNonQuery が失敗しました」と表示されます。

また、「try-catch」も同じことを言います。

何か不足していますか?

4

1 に答える 1

0

table.Script() はクエリの個々の行のコレクションを返すため、最初にそれらを StringBuilder に格納してから、クエリ全体を実行することをお勧めします。

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

お役に立てれば。

于 2013-11-08T20:11:14.493 に答える