2016-04-14 34 views
-2

while (dr.Read()) {...}'u kullanabileceğimi biliyorum ama bu, tablomdaki her alanı döngüler, ilk satırdaki tüm değerleri almak istiyorum, sonra ikinci ... vb.DataReader değer satırı, satır

ı var diyelim böyle bir tablo:

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

Ben çıktı istediğiniz gibi: merhaba Hi1 hey1 aşağıdaki yorum itibaren

:

bayrak

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()', * sütunları * değil * satırlarını * açar. Tam olarak istediğin şeyi yapıyor. Senin sorunun ne? Örnek kodunuz var mı? –

+0

sütunu mu kastediyorsunuz? –

+0

Değer 1 sütun değeri aşağıdaki gibi saklamak istiyorum: textbox1.text = merhaba textboxw.text = hi1 textbox3.text = hey1 – sacpat

cevap

1

Eh, bu nedenle ilk üç kayıtları 2 sütuna gelen tüm istiyorum:

i olarak Değer 1 sütun değeri saklamak istiyorum: TextBox1.Text = merhaba textboxw.text = böyle Hi1 textbox3.text = hey1

şey:

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 
} 

Yalnızca üç conseq. while döngüsünü

+0

Teşekkür ederim ...! Çalışıyor – sacpat

+0

@sacpat: rica ederim –

0

için olsun:

hello hi1 hey1 

yalnızca diğer sütunları göz ardı edin (ya da bunlara ihtiyacınız yoksa bunları seçmeyin) ve yalnızca Value1 çıkışını yapın. Aynı çizgide tutmak istiyorsanız, bir satır sonu koymayın.

+0

Değer 1 sütun değeri aşağıdaki gibi saklamak istiyorum: textbox1.text = merhaba textboxw.text = hi1 textbox3.text = hey1 datareader kullanarak – sacpat

0

Giriş hattınızı satır bazında okuyabilir, bazı yapıları verilerle doldurabilir ve linq kullanarak istediğinizi çıkartabilirsiniz. Sonra tüm veri okumak

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

:

Sen gibi bir yapı tanımlayabilirsiniz.

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); 

Sonucu senin değerleri içeren bir IEnumerable < string> olduğunu. Daha sonra istediğin her şeyi yapabilirsin.

İlgili konular