Avatar billede aamodtod Nybegynder
24. marts 2004 - 13:05 Der er 6 kommentarer og
1 løsning

Søging i database

Hei eksperter
Jeg er helt ny med å bruke ASP.Net.
Har laget en database med søkemulighet.
Når jeg søker på f.eks etternavn, så må jeg skrive det helt likt, eller så blir det ikke kommer det ingen data...

Jeg ønsker og kunne søke med alle etternavn som f.eks starter med H. Da vil jeg få returnert alle etternavn som starter på H.

Er det noen som kan se på koden min, jeg har prøvd i alle muligheter jeg kan tenke meg uten og lykkes

Her er min kode:

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.Oledb" %>
<HTML>
    <HEAD>
        <title>PKS-Brukere</title>
        <script runat="server">


dim Conn as new OleDbConnection("Provider=" & _
        "Microsoft.Jet.OleDB.4.0;" & _
        "Data Source=c:\brukere.mdb")

sub GetData(obj as Object, e as EventArgs)
    dim objCmd as OleDbCommand = new OleDbCommand _
    ("Select * from resultater where Etternavn = @Etternavn", conn)
    dim objReader as OleDbDataReader
    dim objParam as OleDbParameter
        objParam = objCmd.Parameters.Add("@Etternavn", _
        OleDbType.Char)
        objParam.Direction = ParameterDirection.Input
        objParam.Value = tbEtternavn.Text
   
    try
        objCmd.Connection.open()
        objReader = objCmd.ExecuteReader
    catch ex as OleDbException
        Label1.Text = "Error fra databasen"
    End try
   
    Datagrid1.Datasource = objReader
    Datagrid1.Databind()
   
    objReader.close
    objCmd.Connection.Close()
End sub   
        </script>
        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 24px" runat="server">Etternavn:</asp:Label>
            <asp:TextBox id="tbEtternavn" AutoPostBack="True" OnTextChanged="GetData" BorderWidth style="Z-INDEX: 102; LEFT: 104px; POSITION: absolute; TOP: 24px"
                runat="server"></asp:TextBox>
            <asp:DataGrid id="DataGrid1" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 56px" runat="server"
                BorderWidth="1px" BorderStyle="None" GridLines="Vertical" BorderColor="#999999" BackColor="White"
                CellPadding="3" AllowSorting="True">
                <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
                <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#000084"></HeaderStyle>
                <PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
                <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
                <AlternatingItemStyle BackColor="#DCDCDC"></AlternatingItemStyle>
                <ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
            </asp:DataGrid>
        </form>
        </FORM>
    </body>
</HTML>
Avatar billede dgivoni Nybegynder
24. marts 2004 - 15:16 #1
For at kunne soege paa en delvis match skal du bruge LIKE i din sql-saetning.
Dvs. proev at aendre:
Select * from resultater where Etternavn = @Etternavn
til
Select * from resultater where Etternavn LIKE %@Etternavn%

Hvis du kun vil soege paa efternavne der begynder med H ville det se saadan ud:

Select * from resultater where Etternavn LIKE 'H%'
Avatar billede aamodtod Nybegynder
24. marts 2004 - 15:54 #2
Med denne fungerete det:("Select * from resultater where Etternavn LIKE 'H%'",conn)

Med denne:("Select Etternavn,Fornavn,Stilling,Kontaktsenter, Team,Telefon from resultater where Etternavn LIKE @Etternavn%", conn)
Fikke jeg følgene feilmelding:

Beskrivelse: Det oppstod et ubehandlet unntak under kjøring av gjeldende webforespørsel. Gå gjennom stakksporingen hvis du vil ha mer informasjon om feilen og hvor den oppstod i koden.

Unntaksdetaljer: System.NullReferenceException: Objektreferanse er ikke satt til en objektforekomst.

Kildefeil:


Linje 32:     Datagrid1.Databind()
Linje 33:    
Linje 34:     objReader.close
Linje 35:     objCmd.Connection.Close()
Linje 36: End sub   


Kildefil: c:\inetpub\wwwroot\WebApplication1\WebForm4.aspx    Linje: 34

Stakksporing:


[NullReferenceException: Objektreferanse er ikke satt til en objektforekomst.]
  ASP.WebForm4_aspx.GetData(Object obj, EventArgs e) in c:\inetpub\wwwroot\WebApplication1\WebForm4.aspx:34
  System.Web.UI.WebControls.TextBox.OnTextChanged(EventArgs e) +108
  System.Web.UI.WebControls.TextBox.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +26
  System.Web.UI.Page.RaiseChangedEvents() +115
  System.Web.UI.Page.ProcessRequestMain() +1081
Avatar billede dgivoni Nybegynder
24. marts 2004 - 16:01 #3
Saa vidt jeg kan se, saa er det fordi du ikke fik nogen resultater ud af det. Ved du hvad @Etternavn indeholder, og tjekker du at der overhovedet kommer et resultat?
Avatar billede aamodtod Nybegynder
24. marts 2004 - 16:08 #4
Hvis jeg skriver inn H i textboksen med denne::("Select Etternavn,Fornavn,Stilling,Kontaktsenter, Team,Telefon from resultater where Etternavn LIKE @Etternavn%", conn)
kommer feilmedingen - bruker jeg :Select * from resultater where Etternavn LIKE 'H%' - gir det resultater... Burde ikke dette gitt det samme resultat...?

Håper du skjønte hva jeg mente?
aamodtod
Avatar billede dgivoni Nybegynder
24. marts 2004 - 16:11 #5
Hmm, proev med denne her i stedet for saa:

("Select Etternavn,Fornavn,Stilling,Kontaktsenter, Team,Telefon from resultater where Etternavn LIKE @Etternavn + '%'", conn)
Avatar billede aamodtod Nybegynder
24. marts 2004 - 16:14 #6
Det gikk fint :-) Takk for hjelpen!
Her er dine point

Hilsen

aamodtod
Avatar billede dgivoni Nybegynder
24. marts 2004 - 16:18 #7
det var saa lidt. Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester