برگزیده های پرشین تولز

خوندن مقدار فیلد ID با SqlDataReader

fivestar

Registered User
تاریخ عضویت
14 نوامبر 2006
نوشته‌ها
73
لایک‌ها
0
با سلام
دوستان من به یه مشکل خیلی ساده برخورد کردم ولی توش گیر کردم !!:(

یه گریدویو دارم که یه ستون شامل یه دکمه بهش اضافه کردم .یعنی موقع نمایش برای هر رکورد یه دکمه دارم که وقتی کلیک میشه باید مقدار فیلد ID اون رکورد رو از جدول بخونه و چاپ کنه .

این کد من تو رویداد کلیک دکمه :


کد:
 Cnn.Open();
            string str = "Select * from Table1";
            SqlCommand Cmd = new SqlCommand(str,Cnn);
            
            SqlDataReader SDR = Cmd.ExecuteReader();
          
          // SDR.Read();
           string s = SDR.GetValue(0).ToString();
            Response.Write(s);

این پیغام رو میده:

کد:
Invalid attempt to read when no data is present

مسلما اگر SDR.Read(); رو هم تو کد فعال کنم ، دکمه هر رکورد رو که بزنم فقط ID رکورد اول چاپ میشه

یه وقت فکر نکنید پیغام بخاطر اینکه تو جدولم رکورد ندارم. . رکورد دارم اونم 10 تا !!

چی کار کنم ؟؟؟
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
با سلام
دوستان من به یه مشکل خیلی ساده برخورد کردم ولی توش گیر کردم !!:(

یه گریدویو دارم که یه ستون شامل یه دکمه بهش اضافه کردم .یعنی موقع نمایش برای هر رکورد یه دکمه دارم که وقتی کلیک میشه باید مقدار فیلد ID اون رکورد رو از جدول بخونه و چاپ کنه .

این کد من تو رویداد کلیک دکمه :


کد:
 Cnn.Open();
            string str = "Select * from Table1";
            SqlCommand Cmd = new SqlCommand(str,Cnn);
            
            SqlDataReader SDR = Cmd.ExecuteReader();
          
          // SDR.Read();
           string s = SDR.GetValue(0).ToString();
            Response.Write(s);

این پیغام رو میده:

کد:
Invalid attempt to read when no data is present

مسلما اگر SDR.Read(); رو هم تو کد فعال کنم ، دکمه هر رکورد رو که بزنم فقط ID رکورد اول چاپ میشه

یه وقت فکر نکنید پیغام بخاطر اینکه تو جدولم رکورد ندارم. . رکورد دارم اونم 10 تا !!

چی کار کنم ؟؟؟
خوب شما میخواین با این ID چه کاری انجام بدید ؟ اگه مثلا میخواین به صورت querystring لینک جدید بدید، میتونین هنگام databinding به لینک مقدار رو بدید .. یا تو خود gridview این مقدار رو در یکی از ستون ها بیارید و با کلیک دکمه، مقدار مثلا ستون اول رو بخونین ..
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
اینا رو بعد از SqlDataReader SDR = Cmd.ExecuteReader(); بذار :

کد:
[SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][SIZE=2] (SDR.Read())
{
Response.Write(SDR[0].ToString());
}
[/SIZE]
 
بالا