0

メソッド ExecuteNonQuery() のクエリが実行されているかどうかを確認したい。私のWCFサービスのコードは次のとおりです。

 public string Execute(string query){
            string connectionString = ConfigurationManager.ConnectionStrings["ConnWf"].ConnectionString;
            string hasil = "ERROR";
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();
                string cmdStr = String.Format(query);
                SqlCommand command = new SqlCommand(cmdStr, conn);
                command.Connection.Open();
                command.ExecuteNonQuery();

                //I want to check here..
                if (command.ExecuteNonQuery().HasRows) //it doesn't works :(
                {
                    hasil = "SUCCESS \n Row Affected: " + rd.RecordsAffected;

                }
                else
                {
                    hasil = "FAILED \n Row Affected: " + rd.RecordsAffected;
                }
                conn.Close();
            }
            return "Query: "+query+"\n Status: "+hasil;
        }
4

2 に答える 2

4

ExecuteNonQuery()SQL ステートメントの影響を受ける行の合計となる整数を返します。つまり、SSMS が返された場合:

(614 row(s) affected)

(123 row(s) affected)

ExecuteNonQuery()737 を返します。

したがって、このようなものを使用できます。

try
{
    hasil = string.Format("Success \n Rows Affected: {0}", command.ExecuteNonQuery());
}

catch
{
    hasil = "Failed \n Rows Affected: 0";
}

usingSqlCommand と SqlConnectionのブロックも考慮する必要があります。

于 2012-07-19T10:03:28.047 に答える
1

WCF サービスをローカルでもテストでき、ExecuteNonQuery()動作していることを確認できます

int result = command.ExecuteNonQuery();

結果は、ExecutenonQuery() によって影響を受ける行の数になります

于 2012-07-19T10:23:30.113 に答える