RezaNrzdh
شنبه 11 خرداد 1392, 21:22 عصر
سلام و خسته نباشید خدمت اساتید بزرگوار.
والا من یه متد نوشتم برای واکشی اطلاعات از دیتابیس اما به مشکل خوردم.
به طور مختصر کد رو توضیح میدم.
متد رو public گرفتم و نوعش رو هم Sqldatareader قرار دادم...ورودی های به متد هم به قرار زیر هست
commandType که عملا ارتباط با Stored procedure رو برقرار میکنه
Command text که اسم Stored procedure رو تعیین میکنه
و sqlparameters که پرامتر های برای واکشی رو مشخص میکنه
مشکل من زمانی هست که میخوام عمل واکشی رو انجام بدم و در نهایت return
این قسمت انتهایی متد هست
if (dr.Read())
{
for (int i = 0; i < dr.FieldCount; i++)
{
values = dr.GetValue(i);
}
}
dr.Close();
con.Close();
return values;
اگر بیام متغیر values رو از نوع Sqldatareader بگیرم...کد داخل حلقه For خطا میده که dr.getvalue از نوع object هست و شما نمیتونید در sqldatareader بریزید.
اگر بیام values رو به صورت []object در نظر بگیرم ، مشکل کد داخل حلقه برطرف میشه...اما چون متدم از نوع sqldatareader هست...زمان return خطا میده که متد شما sqldatareader هست و نمیتونید به صورت object اطلاعات رو بفرستین بیرون.
راه درست به نظر شما چی هستش؟؟؟البته خودم با یک روش به جواب رسیدم اما نمیدونم درسته یا نه؟؟؟ اونم اینه که نوع متدم رو و تمام متد هایی که این متد رو صدا میزنن []object و یا []string بگیرم.
والا من یه متد نوشتم برای واکشی اطلاعات از دیتابیس اما به مشکل خوردم.
به طور مختصر کد رو توضیح میدم.
متد رو public گرفتم و نوعش رو هم Sqldatareader قرار دادم...ورودی های به متد هم به قرار زیر هست
commandType که عملا ارتباط با Stored procedure رو برقرار میکنه
Command text که اسم Stored procedure رو تعیین میکنه
و sqlparameters که پرامتر های برای واکشی رو مشخص میکنه
مشکل من زمانی هست که میخوام عمل واکشی رو انجام بدم و در نهایت return
این قسمت انتهایی متد هست
if (dr.Read())
{
for (int i = 0; i < dr.FieldCount; i++)
{
values = dr.GetValue(i);
}
}
dr.Close();
con.Close();
return values;
اگر بیام متغیر values رو از نوع Sqldatareader بگیرم...کد داخل حلقه For خطا میده که dr.getvalue از نوع object هست و شما نمیتونید در sqldatareader بریزید.
اگر بیام values رو به صورت []object در نظر بگیرم ، مشکل کد داخل حلقه برطرف میشه...اما چون متدم از نوع sqldatareader هست...زمان return خطا میده که متد شما sqldatareader هست و نمیتونید به صورت object اطلاعات رو بفرستین بیرون.
راه درست به نظر شما چی هستش؟؟؟البته خودم با یک روش به جواب رسیدم اما نمیدونم درسته یا نه؟؟؟ اونم اینه که نوع متدم رو و تمام متد هایی که این متد رو صدا میزنن []object و یا []string بگیرم.