2016-04-18 8 views
1

これは、Windowsのバックエンドサービスで、各アクションをログファイルに書き込む必要があります。私はSQL Select Queryによって返される行の数を探したいので、そのレコードをLog fileに書きたいと思います。簡単な検索方法検索する行の数を返すSQL Server

例:

Selectステートメントの復帰35行。

エントリをログに記録します:

4/18/2016 4:54:47 PM : -Class--> CallBackOption| -Function--> UpdateServiceIBC| -Message--> SELECT * FROM CALLBACKOPTION WHERE ProccessStatus = 0 
4/18/2016 4:54:47 PM : -Class--> Update Service Call Back Option| -Function--> UpdateServiceCall Back Option| -Message--> ***** New Record ***** 
4/18/2016 4:54:47 PM : -Class--> Update Service Call Back Option| -Function--> UpdateServiceCall Back Option| -Message--> Formatting ANI[sip:[email protected]] TO Contact[03022745301] against CA[400001358877] 
4/18/2016 4:54:47 PM : -Class--> Update Service Call Back Option| -Function--> UpdateServiceCall Back Option| -Message--> Checking for Contact Number 
4/18/2016 4:54:47 PM : -Class--> Update Service Call Back Option| -Function--> UpdateServiceCall Back Option| -Message--> Contact Number[9903022745301] call process Chain ID[1] 
4/18/2016 4:54:47 PM : -Class--> Update Service Call Back Option| -Function--> UpdateServiceCall Back Option| -Message--> Updating AutoCall Back Option 

コードスニペット:

 string query = "SELECT * FROM CALLBACKOPTION WHERE ProccessStatus = 0"; 
        Log.WriteErrorLog("CallBackOption", "UpdateServiceIBC", "SELECT * FROM CALLBACKOPTION WHERE ProccessStatus = 0"); 
        using (SqlConnection con = new SqlConnection(ConnectionString)) 
        { 
         con.Open(); 
         SqlCommand cmd = new SqlCommand(query, con); 
         SqlDataReader reader = cmd.ExecuteReader(); 
         while (reader.Read()) 
         { 
          Log.WriteErrorLog("Update Service Call Back Option", "UpdateServiceCall Back Option", "***** New Record *****"); 
          string dateTime = reader["DateTime"].ToString(); 
          string ANI = reader["ANI"].ToString(); 
          string contact = ANI.Substring(ANI.IndexOf(":") + 1, ANI.IndexOf("@") - 4); 
          string CA = reader["CUSTOMER_ACCOUNT"].ToString(); 
Log.WriteErrorLog("","", "Formatting ANI[" + ANI + "] TO Contact[" + contact + "] against CA[" + CA + "]"); 
+0

ループ内でカウントしますか?そのあなたの尋ねるものは不明です。 –

+0

データそのものに興味がありますか、それともカウントが必要ですか? – Shnugo

+0

私はちょうどカウントが必要です....!参照のために編集された質問を参照してください...! – BilalAhmed

答えて

2

私の目には最も簡単な方法(あなたはどのような場合にデータを読んでいる場合):

[...] 
int counter=0; 
SqlDataReader reader = cmd.ExecuteReader(); 
while (reader.Read()){ 
    counter++; 
    [...] 
} 

variabe counterは、処理されている行数が表示されます。

他のCRUDステートメントもありますか?

+0

はい、ありますが、私はそこに何かがあるかどうか疑問に思います.... reader.rowsCount(); – BilalAhmed

+0

あなたの時間のためにありがとう、ありがとうございます。 – BilalAhmed

+1

@TimLong、これを修正するためのthx :-) – Shnugo

0

あなたが使用できる行の量だけを知りたい場合は、次の

cmd.ExecuteNonQuery(); 

これはConnectionに対してSQL文を実行し、影響を受ける行の数を返します。

MSDN

関連する問題