چگونه اطلاعات SqlDataReader را به یک متغییر از نوع اعددی رشته و غیره انتقال داد
چگونه اطلاعات SqlDataReader را به یک متغییر از نوع اعددی رشته و غیره انتقال داد
با متد هایی از SqlDataReader که با Get شروع می شوند میتونی تمام انواع متغییر ها رو مقداردهی کنی ، فقط شماره اندیس فیلد رو به این متد ها میدی!
اگر هم خواستی خودت تبدیل نوع رو انجام بدی SqlDataReader مثل یک ارایه هست که با اندیس یا نام فیلد میشه مقدار آن فیلد رو بدست آورد.
Int32 x=ُSqldataReader.GetInt32(1);//اگر فیلد دوم (اندیس یک) کوئری از نوع صحیح است
String s=ُSqldataReader.GetString(2);//اگر فیلد سوم (اندیس دو) کوئری از نوع رشته است
این روش آرایه ای ابجکت بر میگردونه و باید تبدیل بشه!
Int32 x=(Int32) SqlDataReader[2];//اگر فیلد سوم (اندیس دو) از نوع صحیح است
Int32 x=(Int32) SqlDataReader["ID"];//اگر فیلد ID کوئری از نوع صحیح است
این کار انجام می دهم ارور ERRR میده
SqlConnection Connection1= new SqlConnection();Int32 x=DataReader.GetInt32(1);
Connection1.ConnectionString = ConfigurationManager.ConnectionStrings["DBARHAMConnectionString"].ConnectionString;
SqlCommand Command1 = new SqlCommand();
Command1.CommandText = "select * from جدول اعضا where آدی سرگروه='" + var + "' ";
Command1.Connection = Connection1;
if (Connection1.State != ConnectionState.Open)
Connection1.Open();
SqlDataReader DataReader= cmdsar.ExecuteReader();
این کد منSqlConnection Connection1= new SqlConnection();
Connection1.ConnectionString = ConfigurationManager.ConnectionStrings["DBARHAMConnectionString"].ConnectionString;
SqlCommand Command1 = new SqlCommand();
Command1.CommandText = "select * from جدول اعضا where آدی سرگروه='" + var + "' ";
Command1.Connection = Connection1;
if (Connection1.State != ConnectionState.Open)
Connection1.Open();
SqlDataReader DataReader= cmdsar.ExecuteReader();
Int32 x=DataReader.GetInt32(1);
این کد منSqlConnection Connection1= new SqlConnection();
Connection1.ConnectionString = ConfigurationManager.ConnectionStrings["DBARHAMConnectionString"].ConnectionString;
SqlCommand Command1 = new SqlCommand();
Command1.CommandText = "select * from جدول اعضا where آدی سرگروه='" + var + "' ";
Command1.Connection = Connection1;
if (Connection1.State != ConnectionState.Open)
Connection1.Open();
SqlDataReader DataReader= cmdsar.ExecuteReader();
Int32 x=DataReader.GetInt32(1);
این کد منSqlConnection Connection1= new SqlConnection();
Connection1.ConnectionString = ConfigurationManager.ConnectionStrings["DBARHAMConnectionString"].ConnectionString;
SqlCommand Command1 = new SqlCommand();
Command1.CommandText = "select * from جدول اعضا where آدی سرگروه='" + var + "' ";
Command1.Connection = Connection1;
if (Connection1.State != ConnectionState.Open)
Connection1.Open();
SqlDataReader DataReader= cmdsar.ExecuteReader();
Int32 x=DataReader.GetInt32(1);
اولا لطفا وقتی کد میذاری از تگ کد استفاده کن بشه راحت خوندش (حالت پیشرفته)
خطا رو ننوشتی چیه ! ولی من حدس میزنم دیتا ریدر اصلا مقداری بر نمیگردونه ، بنابراین موقع بازیابی داده ها خطا میده!
به موضوعات زیر دقت کن:
1.این var نوعش چیه؟
2.اسم فیلد ها و جدول رو بین [] قرار بده
3.آیا نوع داده فیلد مورد نظر با متد استفاده شده مطابقت دارد؟
4.پیشنهاد می کنم از نام فارسی در تعریف جدول ها وفیلد ها استفاده نکنی!
این تاپیک رو هم ببین : http://www.barnamenevis.org/sh...ad.php?t=60694
این ها رو با توجه به این که نگفتی ارور چیه نوشتم !
1-این از نوع int داخل SQL هست
2- [] منظورت از این که داخل دستور SQL
3- بله
4- من برای شما فارسی کردم
این کد اصلی با []SqlConnection conm = newSqlConnection();
conm.ConnectionString = ConfigurationManager.ConnectionStrings["DBARHAMConnectionString"].ConnectionString;
SqlCommand cmdsar = newSqlCommand();
cmdsar.CommandText = "select * from [aza] where [ID_SAP]='" + IDSar + "' ";
cmdsar.Connection = conm;
if (conm.State != ConnectionState.Open)
conm.Open();
SqlDataReader drsar = cmdsar.ExecuteReader();
Int32 x=drsar.GetInt32(1);
من یک برنامه تحت وب نوشته ام سوالی کردام که چگونه با SqlDataReader کار کرد . این سوال را برای این کار که توضیح میدهم بود که هنوز هم نتوانستم حل کنم می خواهم که (باتوجه به کد داده شده) یک مبلغ را به اعضا خود بصورت سرگروه وارد کنم یعنی وقتی سر گروه را انتخاب کردام مبلغ را به زیر مجموعه این سرگروه اضافه کنه بصورت مساوی به زیر مجموعه اضافه شود
این کد که مشکلی نداره (فقط این IDSar اگر از نوع رشته نیست باید یه ()ToString. بهش اضافه کنی) !
البته قبل از این که چیزی از دیتاریدر بخونی باید متد خواندن رو اجرا کنی!
کد:
اگر خطا میده پیام خطا رو بذار ببینیم چیه ؟
...غیر از این ، یه کم واضح تر توضیح بده ؟
SqlDataReader drsar = cmdsar.ExecuteReader();
drsar.Read();
Int32 x = drsar.GetInt32(0);
...
می خوای به دیتابیست چیزی اضافه کنی یا ... ؟؟؟؟
3 ID_OZV(key) int 4 0
0 ID_SAP int 4 1
0 NAME nvarchar 50 1
0 FAMLIY nvarchar 50 1
0 DATE_OZV varchar 50 1
0 MOJ_KOL int 4 1
0 hazf_ozo int 4 1
این جدول اعضا
و سوال من اگر ID_SAP=1(بصورت مثال1) زیر مجموع یعنی ID_ozv ها که ID_SAP=1 هست را
مبلغ 2000 (بصورت مثال) را به این عضوهای داخل شرط اضافه کنه
ID_SAP کد سرپرست
ID_OZV کد اعضا
MOJ_KOL موجودی + 2000 با شرط که گذاشتم
"select * from [t] where [ID_SAP]=1
یعنی شرط
و بگم که هنوز ERRR می ده
آخرین ویرایش به وسیله omid_Ahmadi : سه شنبه 17 بهمن 1385 در 20:41 عصر
با تشکر
بابت
SqlDataReader drsar = cmdsar.ExecuteReader();
drsar.Read();
Int32 x = drsar.GetInt32(0);
و سوال که چگونه داخل for رکورد ها را دسترسی داشت
SqlConnection conm = newSqlConnection();
conm.ConnectionString = ConfigurationManager.ConnectionStrings["DBARHAMConnectionString"].ConnectionString;
SqlCommand cmdsar = newSqlCommand();
cmdsar.CommandText = "select * from aza where ID_SAP='" + IDSar + "' ";
cmdsar.Connection = conm;
if (conm.State != ConnectionState.Open)
conm.Open();
SqlDataReader drsar = cmdsar.ExecuteReader();
for (int i = 0; i < 2; i++)
{
drsar.Read();
Int32 x = drsar.GetInt32(0);
Label2.Text = Convert.ToString(x);
}
این حالت وقت یک رکورد قابل دسترسی و فقط اولین رکورد نمایش داده می شود
این حالت وفقط یک رکورد قابل دسترسی و فقط اولین رکورد نمایش داده می شود
while (drsar.Read())
{...}
عزیزم اگر Error میده ، Error رو اینجا بذار ببینم چیه ؟
برای تغییر دادن چیزی هم باید از دستور UPDATE استفاده کنی! (یه کم تو تالار جستجو کن)
از کمکی که کردی متشکرام به هدفی که خواستم رسیدم