PDA

View Full Version : سوال در مورد شر ط در select ؟



نیما حتمی
چهارشنبه 04 خرداد 1390, 15:23 عصر
با سلام
دستور زیر را چه در سی شارپ و چه در sql می نویسم جواب نمی ده.یعنی اینکه با این شرایط رکورد وجود دارد ولی نمی دونم چرا نمی یاره:


select * from EmissionDocView where NumReceipt=1 and PosationDoc ='قطعي شده'
اررور هم نمی ده

یوسف زالی
چهارشنبه 04 خرداد 1390, 15:39 عصر
به جای = از like استفاده کنید. like '%PosationDoc%' -- yani shabih be in matn
یا اینکه به جای PosationDoc بنویسید ltrim(rtrim(PosationDoc)) -- yani space hasjo begir

qartallar
چهارشنبه 04 خرداد 1390, 22:51 عصر
با سلام
دستور زیر را چه در سی شارپ و چه در sql می نویسم جواب نمی ده.یعنی اینکه با این شرایط رکورد وجود دارد ولی نمی دونم چرا نمی یاره:


select * from EmissionDocView where NumReceipt=1 and PosationDoc ='قطعي شده'
اررور هم نمی ده

این کد رو بنویسی حتما کار میکنه
عبارت رو از یک تکست باکس دریافت می کنی
select * from table where fieldname like '%" + textbox.Text + "%' ";

B.I.O.H.A.Z.A.R.D
پنج شنبه 05 خرداد 1390, 09:32 صبح
اگه روش های بالایی کار نکرد اینطوری رو هم امتحان کنید.

Select * from [TableName] where FieldName like N'قطعی شده'%

Reza_Yarahmadi
پنج شنبه 05 خرداد 1390, 12:55 عصر
سعی کنید هیچ وقت از این روش(Inline Query) برای نوشتن کوئریهاتون استفاده نکنید. در صورت امکان تمام دستورات SQL خودتون رو در قالب Store Proc بنویسید و از سمت برنامه فقط SP رو صدا کنید ، یا اینکه اگر نمیخواید از SP استفاده کنید مقادیر کاربر رو بصورت پارامتر به دستور پاس بدید
cmd.CommandText = "Select * From TableName Where Name Like @Name";
cmd.Parameters.AddWithValue("@Name", textBox1.Text + "%");
این کار باعث بالا رفتن امنیت برنامه و همچنین خوانایی کد میشه. دیگه با مشکلات varchar و nvarchar (استفاده از تک کتیشن و N قبل از متن) هم مواجه نمیشید.