0

リンク サーバーでプロシージャを呼び出すと、次のエラーが発生します。

メッセージ 0、レベル 20、状態 0、行 0 現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。

SSMS で動作し、クラシック ASP でも動作しますが、ここでは動作しません。同様の質問をいくつか見つけましたが、答えはありません。そして、リンクサーバーに直接接続してローカルで手順を実行することはありません(できません)。次のように実行する必要があります: myLinkedServer.Database.dbo.myProcedure

何か案が?

 using (SqlCommand getOutput = new SqlCommand())
        {

            getOutput.CommandText = "myLinkedServer.Database.dbo.myProcedure";
            getOutput.CommandType = CommandType.StoredProcedure;
            getOutput.CommandTimeout = 300;
            getOutput.Connection = conn;

            conn.Open();
            using (SqlDataAdapter da = new SqlDataAdapter(getOutput))
            {
                da.AcceptChangesDuringFill = false;
                da.Fill(exportData);//here error happened
                conn.Close();
                da.Dispose();
4

1 に答える 1

0

私は解決策を見つけました:

getOutput.CommandText = "EXEC myLinkedServer.Database.dbo.myProcedure";
getOutput.CommandType = CommandType.Text;

リンクサーバーでプロシージャを呼び出す場合、コマンドタイプはテキストにする必要があります。

于 2013-02-06T10:35:35.333 に答える