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 回答