PDA

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



ali9698
چهارشنبه 15 خرداد 1392, 09:17 صبح
سلام دوستان من از کد زیر استفاده میکنم. وقتی که SqlCommad اجرا میشه چون که @name بین '' قرار گرفته، @name رو یک رشته فرض میکنه نه یک parameter . باید چی کار کنم که درست بشه؟

cmd.Parameters.AddWithValue("@name", txt_name.Text);
cmd.CommandText = "SELECT * FROM [users] WHERE name like N'@name'";

Mani_rf
چهارشنبه 15 خرداد 1392, 10:42 صبح
وقتی که پارامتر میفرستی به سمت دیتابیس نیازی نیست که از '' برای مشخص کردن رشته استفاده کنی.

ali9698
چهارشنبه 15 خرداد 1392, 10:57 صبح
وقتی که پارامتر میفرستی به سمت دیتابیس نیازی نیست که از '' برای مشخص کردن رشته استفاده کنی.
خوب چطوری باید بنویسم؟
به این دو روش هم نوشتم ارور میده

cmd.CommandText = "SELECT * FROM [users] WHERE name like N@name";

cmd.CommandText = "SELECT * FROM [users] WHERE name like N @name";

forestasphalt
چهارشنبه 15 خرداد 1392, 11:05 صبح
جای 2 تا سطر بالا رو عوض کن ببین درست میشه،نباید رشته برگردونه

ali9698
چهارشنبه 15 خرداد 1392, 11:07 صبح
دو تا سطر رو که با هم ننوشتم! منظورم این بود که این دو حالت رو هم چک کردم اما هر دو ارور میده. البته از نظر ارور های سمت بانک مطمئن و نام فیلد و ... هستم که اروری توی کد نداره

vistacali
چهارشنبه 15 خرداد 1392, 11:22 صبح
SELECT * FROM dbname WHERE name like 'name'

ali9698
چهارشنبه 15 خرداد 1392, 11:23 صبح
SELECT * FROM dbnameWHERE name like 'name'
خب این که معلومه درسته میخوام N حذف نشه که با حروفی مثل 'ک' و 'ی' و ... مشکلی ایجاد نشه

forestasphalt
چهارشنبه 15 خرداد 1392, 11:27 صبح
منظورم این 2 تاسطر بود!
cmd.Parameters.AddWithValue("@name", txt_name.Text);
cmd.CommandText = "SELECT * FROM [users] WHERE name like N'@name'";

ali9698
چهارشنبه 15 خرداد 1392, 11:33 صبح
منظورم این 2 تاسطر بود!
cmd.Parameters.AddWithValue("@name", txt_name.Text);
cmd.CommandText = "SELECT * FROM [users] WHERE name like N'@name'";
فرقی نداره بازم @name رو رشته فرض میکنه!