PDA

View Full Version : سوال: جستجو در sql



behnam_khademi
شنبه 11 شهریور 1391, 19:59 عصر
با سلام
من یک PROCEDURE دارم به فرم زیر:

@ID_Personel
int =NULL,

@Name
nvarchar(20)=NULL,

@Family
nvarchar(30)=NULL

AS




SELECT * FROM BS_Tb_personel btp




WHERE IDPersonel LIKECOALESCE(@ID_Personel,IDPersonel)

AND



Name LIKECOALESCE(@Name+'%',Name)

AND



Family LIKECOALESCE(@Family+'%',Family)



باید لیست تمام پرسنل من رو بر گردونه ، وقتی که رو حروف (مثلا نام و نام خانوادگی) جستجو انجام میشه خوب کار میکنه (برای مثال با زدن حرف ب تمام اسم هایی که با ب شروع میشه رو نشون میده) اما وقتی رو اعداد (مثلاً شماره پرسنلی ) جستجو انجام میشه باید شماره پرسنای رو حتماً دقیق وارد کرد. چطور میشه اونم مثل نام کار کنه?
اینم کد C#‎

using








(SqlConnection conn = newSqlConnection(connection))

{





using (SqlCommand cmd = newSqlCommand("Select_Personel"))

{

cmd.CommandType =



CommandType.StoredProcedure;

cmd.Parameters.Add(



newSqlParameter("@ID_Personel", Searchitem));

cmd.Parameters.Add(



newSqlParameter("@Name", searchItem2));

cmd.Parameters.Add(



newSqlParameter("@Family", searchItem3));





// cmd.Parameters.Add(new SqlParameter("@Pass", TxtPass.Text));

conn.Open();

cmd.Connection = conn;





SqlDataAdapter adapter = newSqlDataAdapter(cmd);





DataSet ds = newDataSet();

adapter.Fill(ds,



"Select_Personel");

GridviewSearch.DataSource = ds;

GridviewSearch.DataMember =



"Select_Personel";





using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection) )

{





if (rdr.Read())

{

arrPic = (



byte[]) rdr["ImagePersonel"];

ms =



newMemoryStream(arrPic);

}

}

conn.Close();

}

}

felfely
یک شنبه 12 شهریور 1391, 00:07 صبح
سلام

برای این کار باید نوع داده ای شماره پرسنلی ذخیره شده در دیتابیس رو به صورت رشته بذارین تا بتونید از like استفاده کنین.

موفق باشید.

behnam_khademi
یک شنبه 12 شهریور 1391, 00:16 صبح
ممنون از جوابت
اما من شمارندم از نوع int هست و باید هم int باشه.
راهه دیگه ای برای این کار هست؟

behnam_khademi
پنج شنبه 16 شهریور 1391, 02:09 صبح
دوستان کسی نظری نداره؟