السلام عليكم
أرغب بالبحث في جدول بقاعدة بيانات sql واستخدمت الكود التالي في زر البحث :
Dim constr As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
Using con As New SqlConnection(constr)
Using cmd As New SqlCommand()
cmd.CommandText = "SELECT * from Departs where DepartNumber like '%' +@DepartNumber+ '%' OR DepartName like '%' +@DepartName+ '%' OR DepartGender like '%' +@DepartGender+ '%' OR DepartSection like '%' +@DepartSection+ '%' and IsActive=@IsIsActive"
cmd.Parameters.AddWithValue("@DepartNumber", TxtNumber.Text)
cmd.Parameters.AddWithValue("@DepartName", TxtDepartName.Text)
cmd.Parameters.AddWithValue("@DepartGender", TxtSearchGender.Text)
cmd.Parameters.AddWithValue("@DepartSection", TxtSearchSection.Text)
cmd.Parameters.AddWithValue("@IsActive", True)
If [String].IsNullOrEmpty(TxtSearchMoeID.Text) = True Then
cmd.Parameters("@DepartMoeID").Value = DBNull.Value
End If
If [String].IsNullOrEmpty(TxtSearchName.Text) = True Then
cmd.Parameters("@DepartName").Value = DBNull.Value
End If
cmd.Connection = con
con.Open()
Dim dt As New DataTable
Dim da As New SqlDataAdapter(cmd)
da.Fill(dt)
gview.DataSourceID = Nothing
gview.DataSource = dt
gview.DataBind()
End Using
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Tryعندما يكون أي تكست بوكس فارغ فلا مشكلة في البحث حتى وإن كانت جميعها فارغة ، ولكن تظهر لي رسالة الخطأ التالية في حال كان أحد التكست بوكس يحتوي علر حرف أو حرفين :
operator '=' is not defined for type 'dbnull' and type 'boolean'
إن أدخلت ثلاث أحرف وأكثر قبل الاستعلام ، أما حرفين فلا يقبل ( إما ثلاث حروف أو فارغ ) على الرغم من أني تحققت من القيم المرسلة إن كانت null باستخدام isnullOrEmpty ولكن البرنامج يعتبر أن الحرف أو الحرفين Null أو empty ۔۔۔۔۔
للمعلومية ، جميع الحقول في الجدول من النوع Nvarchar
أتمنى أن أجد الإجابة لديكم ۔۔۔
