PDA

View Full Version : مشکل در دستور like



mohammad abedi
یک شنبه 21 آذر 1389, 15:56 عصر
با سلام و خسته نباشید
من یه SP نوشتم به شکل زیر :

ALTER PROCEDURE spSkin_select_SearchMedic
@Specialty_NameEn nvarchar(50) ,
@Specialty_NameFa nvarchar(50) ,
@Medic_FNameEn nvarchar(50),
@Medic_FNameFa nvarchar(50),
@Medic_LNameEn nvarchar(50),
@Medic_LNameFa nvarchar(50),
@Medic_No nvarchar(50),
@Medic_Tell nvarchar(50),
@Medic_Mobile nvarchar(50),
@Medic_Email nvarchar(50),
@Medic_AddressEn nvarchar(50),
@Medic_AddressFa nvarchar(50)
AS
select * from V_MedicSpecialty where (Specialty_NameEn like @Specialty_NameEn)
or (Specialty_NameFa like @Specialty_NameFa) or (Medic_FNameEn like @Medic_FNameEn) or (Medic_FNameFa like @Medic_FNameFa)
or (Medic_LNameEn like @Medic_LNameEn) or (Medic_LNameFa like @Medic_LNameFa) or (Medic_No=@Medic_No)
or (Medic_Tell=@Medic_Tell) or (Medic_Mobile=@Medic_Mobile) or (Medic_Email=@Medic_Email)
or (Medic_AddressEn like @Medic_AddressEn) or (Medic_AddressFa like @Medic_AddressFa)منظورم از این کاراینه که هرچی توی تکستم نوشتم توی جدولم سرچ بشه
کدم هم این طوریه :


SqlCommand com = new SqlCommand();
com.Connection = cn;
com.CommandType = CommandType.StoredProcedure;
com.CommandText = "spSkin_select_SearchMedic";

com.Parameters.AddWithValue("@Specialty_NameEn", txtSearch.Text);
com.Parameters.AddWithValue("@Specialty_NameFa", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_FNameEn", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_FNameFa", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_LNameEn", "'" + txtSearch.Text + "%'");
com.Parameters.AddWithValue("@Medic_LNameFa", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_No", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_Tell", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_Mobile", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_Email", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_AddressEn", txtSearch.Text);
com.Parameters.AddWithValue("@Medic_AddressFa", txtSearch.Text);

try
{
cn.Open();
SqlDataReader dr = com.ExecuteReader();
dt.Clear();
dt.Load(dr);
if (dt.Rows.Count > 0)
{
...............
حالا مثلا اگه فیلد Medic_LNameEn شامل فامیلیه abedi باشه و من abe رو سرچ کنم جواب نمیده
من این خطو تستی نوشتم ببینم کار میکنه یا نه که کار نکرد :


com.Parameters.AddWithValue("@Medic_LNameEn", "'" + txtSearch.Text + "%'");نتیجه : میخوام روش استفاده از دستور like توی SP و از همه مهمتر استفاده اون (فراخوانی پارامتری که like شده) توی C# بدونم.
ممنون

mohammad abedi
یک شنبه 21 آذر 1389, 16:52 عصر
با خودم حلش کردم
باید اینجوری مینوشتم :

com.Parameters.AddWithValue("@Medic_LNameEn", txtSearch.Text + "%");