PDA

View Full Version : سوال: ارسال پارامتر خاص ار سی شارپ به دیتابیس



morteza norouzi
سه شنبه 15 مرداد 1392, 11:29 صبح
سلام دوستان
چطور میتونم این کد اس.کیو.ال رو داخل سی شارپ پیاده سازی کنم

SELECT code, name, family FROM custom where (name LIKE N'@name%')

مشکل داخل این بخشه - و برنامه از این قسمت ارور میگیره

name LIKE N'@name%'

یعنی نمیشه عینا این کوئری رو داخل CommandText ریخت و داخل برنامه فراخوانی کرد

در کل قصدم اینه که وقتی اول حرف تایپ میشه تمامی اسامی که با اون حرف شروع میشن رو داخل دیتا گرید لیست کنه کوئری بالا داخل اس.کیو.ال جواب میده اما داخل سی شارپ ارور میده

لطفا کمکم کنید
ممنون

hojjatshariffam
سه شنبه 15 مرداد 1392, 13:10 عصر
بگیر اینم ارسال پارامتر به اس کیو ال

string SQLstr = "Insert Into [Picture_tbl] Values (" + sample.Picture_ID + "," +
"N'" + sample.Picture_Type + "'" + "," "@V_Picture_Byte" + ")";
SqlCommand SQLCOMM = new SqlCommand(SQLstr);
SQLCOMM.Parameters.Add("@V_Picture_Byte", System.Data.SqlDbType.Image);
SQLCOMM.Parameters["@V_Picture_Byte"].Value = sample.Picture_Byte;

morteza norouzi
سه شنبه 15 مرداد 1392, 14:05 عصر
سلام
hojjatshariffam عزیز خیلی ممنون
اما من ارسال پارامتر به دیتابیس رو بلد هستم مشکل من برای ارسال این کده

name LIKE N'@name%'

یعنی تمامی نام هایی که مثلا با یه حرف خاص شروع بشن که اون حرف رو پارامتر @name مشخص میکنه

ممنون

parvizwpf
سه شنبه 15 مرداد 1392, 14:23 عصر
ارور چیه؟ N رو حذف کنید مشکلی هست؟ کل کد رو بزارید

sohil_ww
سه شنبه 15 مرداد 1392, 14:30 عصر
سلام
hojjatshariffam عزیز خیلی ممنون
اما من ارسال پارامتر به دیتابیس رو بلد هستم مشکل من برای ارسال این کده

name LIKE N'@name%'

یعنی تمامی نام هایی که مثلا با یه حرف خاص شروع بشن که اون حرف رو پارامتر @name مشخص میکنه

ممنون

خوب شما باید یک حرف به جای @name ارسال کنید ؟!

مشکل کارتون دقیقا کجاست ؟!

morteza norouzi
سه شنبه 15 مرداد 1392, 14:33 عصر
parvizwpf جان اروری نمیده فقط نتیجه نمیده یعنی سطری داخل دیتا گرید نمیاد

morteza norouzi
سه شنبه 15 مرداد 1392, 14:34 عصر
خب حرف من متغیره

کل کد اینه:

objdataadpter.SelectCommand = new SqlCommand();
objdataadpter.SelectCommand.Connection = con;
DataSet objdataset = new DataSet();
objdataadpter.SelectCommand.CommandText = "SELECT code, name, family, adress, phone1, phone2, phonehome FROM custom where (name LIKE '@name%')";
objdataadpter.SelectCommand.Parameters.AddWithValu e("@name", txtName.Text);
objdataadpter.Fill(objdataset, "find");
dataGridView1.DataSource = objdataset;
dataGridView1.DataMember = "find";

parvizwpf
سه شنبه 15 مرداد 1392, 14:38 عصر
الان حتی روی حروف انگلیسی هم کار نمیکنه؟ یه بریک پوینت بزارید ببینید جمله داره درست میره سمت دیتابیس.

morteza norouzi
سه شنبه 15 مرداد 1392, 15:01 عصر
parvizwpf جان یکی نام انگلیسی هم به دیتابیس اضافه کردم جواب نداد جالب اینجاست که همین کد رو داخل اس.کیو.ال کپی میکنم و جای پارامتر @name یه حرف فارسی یا انگلیسی میزارم جواب میده
بریک پوینت هم گذاشتم دقیقا همونی رو که نوشتم دارم پاس میده

parvizwpf
سه شنبه 15 مرداد 1392, 15:04 عصر
حالا اون چیزی که هنگام بریک پوینت ، sqlcommand زده اینجا کپی کنید یعنی همون کوئری ای که sqlcommand ساخته.

morteza norouzi
سه شنبه 15 مرداد 1392, 15:17 عصر
وقتی اول خط

objdataadpter.Fill(objdataset, "find");
بریک پوینت میزارم بعد با موس روی objdataadpter میرم پنجره شناوری که باز میشه روی SelectCommand که میرم روبروی SelectCommand مینویسه

"SELECT code, name, family, adress, phone1, phone2, phonehome FROM custom where (name LIKE N'@name%')"

parvizwpf
سه شنبه 15 مرداد 1392, 15:33 عصر
LIKE @name+'%'

morteza norouzi
سه شنبه 15 مرداد 1392, 15:38 عصر
parvizwpf جان خیلی ممنون لطف کردی با جایگزین کردن کد شما درست شد :لبخندساده: :تشویق:

مرسی خدا خیرت بده