Har gjort en sökknapp som kollar av olika värden och den fungerar som den ska men min fråga är hur gör man för att den ska retunera att de man söker inte finns i databasen. Just nu kommer bara inget fram vilket inte säger så mkt till användarna =) Om du tex får en DataTable som retur från din sökfunktion kan du ju se till att den är null (C#) om du inte fick några träffar. Sen kollar du på typ detta sätt Hänger inte riktigt med på hur du tycker jag ska göra. Kan du förklara mer, sen använder jag vb.net ;) Jag tror nåt sånt här ska funka.Sök i databas
Sv: Sök i databas
html koden finns en HtmlGenericControl:
<div id="messagebox" runat="server"></div>
codebehind
<code>
if(GetSearchResult(criteria) != null)
{
//träffar. Pumpa ut resultatet i repeater eller dyligt
....
.......
}
else
{
//Ingen träff
messagebox.InnerHtml = "Sorry, inga träffar.";
}
</code>
detta är iof för 1.1 men borde funka liknande i 2.0. Finns säkert andra bättre sätt, men detta är ett.Sv:Sök i databas
Här är min kod
<code> Sub sok(ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles sokKnapp.Click
'Skapar anslutning (anropar från web.config)
Dim strConn As String = ConfigurationManager.AppSettings("Connstr").Replace("%MAPPATH%", Server.MapPath(" "))
Dim myConn As New OleDbConnection(strConn)
Dim strsql As String = "SELECT * FROM lankdb WHERE " & _
" (((Lankdb.foretag)='" & Request.Form("sokFras") & "')) OR " & _
" (((Lankdb.undergrupp)='" & Request.Form("sokFras") & "') OR " & _
" ((Lankdb.beskrivning)='" & Request.Form("sokFras") & "') OR " & _
" ((Lankdb.typ)='" & Request.Form("sokFras") & "') OR " & _
" ((Lankdb.sokord1)='" & Request.Form("sokFras") & "') OR " & _
" ((Lankdb.sokord2)='" & Request.Form("sokFras") & "') OR " & _
" ((Lankdb.sokord3)='" & Request.Form("sokFras") & "'))"
Dim myCommand As New OleDbCommand(strsql, myConn)
Dim myDataReader As OleDbDataReader
If Page.IsPostBack Then
Try
myConn.Open()
myDataReader = myCommand.ExecuteReader()
'binder datan med repeatern
sokResultat.DataSource = myDataReader
sokResultat.DataBind()
myDataReader.Close()
myDataReader = Nothing
Catch ex As Exception
'lblErrMessage.Text = ex.Message
Response.Write(ex.Message)
Finally
myConn.Close()
myConn.Dispose()
myConn = Nothing
End Try
End If
End Sub</code>Sv: Sök i databas
<code>
if myDataReader != null then
// Kod som ska köras om det blir någon träff alltså binder du din data här...
else
// kod som ska köras om det nite blir någon träff...
end if
</code>
Är osäker på syntaxen i VB. Du bör nog kolla upp SQL-injection också.