2016-04-14 7 views
-2

私はwhile (dr.Read()) {...}を使用できますが、それはテーブルのすべてのフィールドをループして、最初の行からすべての値を取得したいと思います。行ごとのDataReader値

のは、私はこのようなテーブルがあるとしましょう:

ID--------------Value1--------------Value2------------------Value3 
1    hello    hello2     hello3 
2    hi1     hi2      hi3 
3    hey1    hey2 

私は出力をしたいよう:

フラグ

SqlCeCommand cmd = new SqlCeCommand(); 
cmd.CommandType = CommandType.Text; 
cmd.CommandText = "Select * From DataLogger1 where Time BETWEEN '"+DateTimePicker.Value+"' AND '"+DateTimePicker1.Value+"' "; 
cmd.Connection = conn1; 
conn1.Open(); 
SqlCeDataReader rd= cmd.ExecuteReader(); 
while(rd.Read()) 
{ 
    Globals.Tags.Xarrray[0].Value=rd[2].ToString(); 
    Globals.Tags.Xarrray[1].Value=rd[2].ToString(); 
    Globals.Tags.Xarrray[2].Value=rd[2].ToString(); 
    Globals.Tags.Xarrray[3].Value=rd[2].ToString(); 
    Globals.Tags.Xarrray[4].Value=rd[2].ToString(); 
+6

'DataReader.Read()'ループは、* rows *ではなく* rows *でループします。それはすでにあなたが求めているものを正確に行います。あなたの問題は何ですか?任意のサンプルコードがありますか? –

+0

あなたは列を意味しますか? –

+0

私は値1の列の値を次のように保存します:textbox1.text = hello textboxw.text = hi1 textbox3.text = hey1 – sacpat

答えて

1

さて、あなたはすべてが2列目からある最初のの3つのレコードたいので:

私のように値1列の値を格納したい:textbox1.text =こんにちは textboxw.textを=このようなHI1 textbox3.text = hey1

何か:

using (var reader = myCommand.ExecuteReader()) { 
    if (reader.Read()) 
    textbox1.Text = Convert.ToString(reader.GetValue(1)); // hello 

    if (reader.Read()) 
    textbox2.Text = Convert.ToString(reader.GetValue(1)); // hi1 

    if (reader.Read()) 
    textbox3.Text = Convert.ToString(reader.GetValue(1)); // hey1 
} 

ただ3つ conseq。読み取り、no whileループ

+0

ありがとう!それは動作します – sacpat

+0

@sacpat:あなたは歓迎です –

0

へ:こんにちはHI1 hey1

以下のコメントから、取得:

hello hi1 hey1 

他の列を無視するだけで(必要がない場合は選択しないでください)、Value1のみを出力します。本当に同じ行に置いておきたい場合は改行を入れないでください。

+0

私は値1の列の値を次のように保存します:textbox1.text = hello textboxw.text = hi1 textbox3.text = hey1 using datareader – sacpat

0

入力行を1行ずつ読み込み、いくつかの構造体にデータを入力し、linqを使用して必要なものを抽出することができます。そして、すべてのデータを読み込む

class Data 
{ 
    public string Id; 
    public string Value1; 
    public string Value2; 
    public string Value3; 
} 

はあなたのような構造を定義することができます。

var allData = new List<Data>(); 
while(dr.Read()) 
{ 
    var d = new Data { Id = dr.GetString(0), Value1 = dr.GetString(1), Value2 = dr.GetString(2), Value = dr.GetString(3) }; 
    allData.Add(d); 
} 

var result = allData.Select(x => x.Value1); 

結果は、値が含まれるIEnumerable <文字列>です。次に、値を使用して必要な操作を実行できます。