PDA

View Full Version : datareader



kazabelanca
یک شنبه 12 مهر 1383, 14:21 عصر
سلام
در یک اتصال وقتی یک datareader هنوز close نشده من نمی توانم executereader دیگر داشته باشم یعنی در یک زمان با دو queryمختلف(دوexecute reader) داشته باشم (error می دهد )آیا راهی برای این کار هست.

Farhad.B.S
یک شنبه 12 مهر 1383, 14:35 عصر
اگه منظورتون اینه که میخواید دوتا کئوری رو همزمان اجرا کنید و نتایج هر دو رو بدست بیارید ، می تونید از متد NextResult دیتاریدر استفاده کنید :


dbCommand.CommandText = @"
SELECT * FROM Table1
SELECT * FROM Table2
";
dbReader = dbCommand.ExecuteReader();

//1th query result
dbReader.Read();
MessageBox.Show(dbReader["MyField"].ToString());

//2th query result
dbReader.NextResult();
dbReader.Read();
MessageBox.Show(dbReader["MyField"].ToString());

hmm
یک شنبه 12 مهر 1383, 15:46 عصر
:shock:
جالبه :idea:

kazabelanca
دوشنبه 13 مهر 1383, 15:58 عصر
خِیلی جالب بود اصلا فکر نمی کردم همچین راهی وجود داشته باشه.
تشکر

marmar
دوشنبه 21 شهریور 1384, 12:44 عصر
سلام

با تشکر از راهنمایی هاتون گفته شما درست اما من در 1 جای برنامه خطوطی دارم مثل این قسمت

if(mydatareader2.GetDecimal(2)==mydatareader1.GetD ecimal(0))
{
TreeView1.AddNode(System.Convert.ToString(mydatare ader2.GetDecimal(0),mydatareader2.GetString(1),"","",false,"",TreeView1.NodeStyle);

TreeView1.FindNode(System.Convert.ToString(mydatar eader1.GetDecimal(0))).AddNode(System.Convert.ToSt ring(mydatareader2.GetDecimal(0)),mydatareader2.Ge tString(1),"","",false,"",TreeView1.NodeStyle);


یعنی گاهی اوقات می شود که مجبورم از هر دو تا datareader با هم استفاده کنم مثل این:

if(mydatareader2.GetDecimal(2)==mydatareader1.GetD ecimal(0))

خوب حالا چی کار کنم؟

آیا اصلا شما پیشنهاد می کنید که من در این جاها ازdatareader استفاده کنم یا راه بهتری هم وجود دارد؟