PDA

View Full Version : سوال: خطا در دستور SELECT



Ebrahim_Rayaneh
سه شنبه 16 مهر 1387, 22:50 عصر
در برنامه ای متدی نوشتم که وظیفه ی این متد بازیابی یک سری مقادیر ستونهای جدول x می باشد. در واقع چون دستور select اس کیو ال در پروژه ی من زیاد کار دارد برای آن یک متد با نام Select_Record نوشتم.که این متد شرایط مختلف دستور select را در نظر گرفته و بنا به آن شرایط تصمیم درستی اتخاذ می کند.اما در اجرای این متد خطای زمان اجرا مشاهده شد بدین صورت که : من در جایی در این متد placeholder هایی درنظر گرفتم و آنها را با استفاده از خاصیت sqlcommand.parameters.add() با مقادیر مناسب جایگزین کردم ، در بر خلاف انتظار در آخر کار مشاهده می شود که placeholder ها خودشان در query نهایی ظاهر می شوند.به عنوان مثال اگر من این متد را به صورت :
Select_Record("ACCOUNT", "NAME, PERMISSION", out DS, "ID, PASSWORD", "=", "AND",
textBox_UserID.Text, textBox_Pass.Text);
فراخوانی کنم ، به جای آنکه query نهایی به این صورت باشد :
SELECT NAME, PERMISSION FROM ACCOUNT WHERE ID='EBRAHIM' AND PASSWORD='123'
به این صورت می شود:
SELECT NAME, PERMISSION FROM ACCOUNT WHERE ID='@Val_0' AND PASSWORD='@Val_1'

SMRAH1
چهارشنبه 17 مهر 1387, 00:26 صبح
سلام

دوست من به جای عبارت :

cmdtext += Feilds[i] + " " + _ConditionalCampareOperator + " '" + prm + "' " + _CondotionalLogic + " ";باید از عبارت

cmdtext += Feilds[i] + " " + _ConditionalCampareOperator + prm + _CondotionalLogic + " ";استفاده کنی.

در ضمن به جای کدهای

string[] Feilds = ...
int i....
foreach(..)
{
....
}می تونی از خط زیر استفاده کنی

string[] Feilds = _Condotional.Feilds.Split(new Char [] {','});در نهایت هم،لطفا دفعه بعد به جای عکس،خوده کدها رو (به شکل Text فقط در تگ های CODE) بگذار.اینطوری هم تست ساده تره هم راهنمایی.

موفق باشی