C#SMO Executenonquery数据库失败

时间:2013-09-18 13:28:28

标签: c# sql smo

我的代码行(我还是新手。); 我试图在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

当我转到“详细信息”页面时,它显示“ExecuteNonQuery数据库失败”KopyaDB“。”

“try-catch”也是这样说的。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

table.Script()返回查询的单独行的集合,因此您可能希望首先将它们存储在StringBuilder中,然后作为整体执行查询。

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

希望这有帮助。