PDA

View Full Version : سوال: دستیابی به داده های رکورد



reyhaneh-sh
چهارشنبه 20 شهریور 1387, 01:47 صبح
سلام دوستان
من با استفاده از دستور select یک رکورد خاص را انتخاب کردم
و قبل اتصلات و همه چیز را برقرار کردم

این دستور:

cmdclas = new OleDbCommand();
cmdclas.Connection = con;
cmdclas.CommandText = "select * from product where id=`25`";

cmdclas.ExecuteNonQuery();



همه جیز درسته و ایراد هم نمیگیره (به ظاهر این کدها نگاه نکینید )

حالا میخوام مثلا یک فیلد از این رکورد منحصر به فرد را که انتخاب کردم بریزم توی یک متغیر double
با استفاده از این دستور ریختمش توی لیست باکس
textBox4.DataBindings.Add(new Binding("Text", ds, "product.weight"));

ولی من میخوام مستقیما بریزم توی متغیر که بعدا این مقدار را ضرب در عدد خاصی کنم و ....
همه دستورات ممکن را هم تست کردم ولی جواب نگرفتم
مبشه فرم کلی برای این کار را بگین ؟

dr_csharp
چهارشنبه 20 شهریور 1387, 08:49 صبح
سلام
اولا شما باید ExecuteReader کنید و نتیجه رو در یک DataReader ذخیره کنید .
نهایتا میتونید فیلد مورد نظرتون و از Reader بخونید و تو هر متغیری که میخواین( البته با رعایت ضوابط) ذخیره کنید.


double field = double.Parse(Reader[1].ToString());

مثلا در کد فوق فیلد دوم رکورد در متغیر field قرار گرفته است :لبخندساده:

reyhaneh-sh
چهارشنبه 20 شهریور 1387, 23:52 عصر
دوست عزیر با تشکر ولی با اجرای دستورات شما برنامه پیغام
No data exists for the row/column. میدهد

OleDbDataReader reader = cmdclas.ExecuteReader(CommandBehavior.CloseConnect ion);

w = double.Parse(reader[0].ToString());

reader.Close();
خیلی سختی کشیدم سر این موضوع :عصبانی++:
خواهشا راهنمایی کنید

reyhaneh-sh
پنج شنبه 21 شهریور 1387, 00:50 صبح
متاسفانه به هردوی فرمت های زیر نیز ایراد گرفت

w =Convert.ToDouble( this.BindingContext[ds, "product.weight"]);


w = double.Parse( this.BindingContext[ds, "product.weight"].ToString());

dr_csharp
پنج شنبه 21 شهریور 1387, 08:32 صبح
دوست عزیر با تشکر ولی با اجرای دستورات شما برنامه پیغام
No data exists for the row/column. میدهد

OleDbDataReader reader = cmdclas.ExecuteReader(CommandBehavior.CloseConnect ion);

w = double.Parse(reader[0].ToString());

reader.Close();
خیلی سختی کشیدم سر این موضوع :عصبانی++:
خواهشا راهنمایی کنید
شاید تو بانکتون همچین شرایط select برقرار نیست و مقداری برگردونده نمیشه !
ضمنا میتونید از متد TryParse استفاده کنید !

reyhaneh-sh
پنج شنبه 21 شهریور 1387, 14:13 عصر
خیلی خیلی از پاسخ شما متشکرم
من اشکال اروری را که گفتم فهمیدم " No data exists for the row/column."
اضافه کردن دستور if مشکل را حل کرد

if (reader.Read())
{
w = Convert.ToDouble(reader[2]);

}