私はC#Windowsフォームのデータグリッドビューに表示されるSQLiteデータベースを持っています。したがって、このデータベースには4つの列があります。私の特に関心は、列の1つだけです。列はメッセージのタイプを示します。 ERRORSまたはALARMSまたはINITIALIZATIONなどが可能です。今では、列を編集してデータベースで更新できる機能を追加しました。C#SQlite - クエリを使用して文字列が繰り返された回数をカウントする(複雑化)
そのように、私はALARMSのリストを選択し、それらをALARM#1(それらのタイプフィールドが更新されている)としてグループ化します。同様にALARM#2など...
これはすべて正常に動作します。問題は、アラームの数を数えたい場合です。私は、クエリ
using(var sda=new SQLiteDataAdapter("SELECT count(*) from LogDatabase where Type like '%ALARM%'", "data source=" + database_path))
{
var dt = new DataTable();
int sum_rows_selected=0;
sda.Fill(dt);
int alarms_total = Convert.ToInt16(dt.Rows[0][0]);
MessageBox.Show(alarms_total.ToString());
}
これは、DBは、タイプアラームの10行を持っていた当初場合は、...その中にALARMを持つすべてのフィールドを示しますので、送信します。それは良い10を示しています。しかし今は、4行をALARM#1と5行としてALARM#2として編集すると、カウントは3になります(#1は1、#2は1、残りはALARMS(ここでは1))...
私は正しい答えを得るために奇妙なロジックを得ることができましたが、その時にALARMSが#1または#2に編集されている場合にのみ動作します。私が窓を閉じて戻ってきたら、それは動かない。構文はSQLiteのために異なる場合 わからないが、
SELECT Type, count(*) from LogDatabase where Type like '%ALARM%' Group by Type
のようなものは、これは与えるべきである:それは...もう一度してください
おかげ
これは非常に混乱しやすい投稿です。最後の2つの段落についてさらに説明できますか?私はあなたが何を達成しようとしているのか分かりません。ありがとう。 – IAmTimCorey
ここでやっていることについてちょっと混乱しています。 「でも今は4行をALARM#1と5行をALARM#2として編集する」と言うとどういう意味ですか?今は10行です:ALARMタイプでは1、ALARM#1タイプでは4、ALARM#2タイプでは5です。 –
@トムヘーゼル私はまだ10行を持っています。しかし、ALARM#1の4行はすべて1つのALARMとして数えます。 (4ではなく) – techmanc