Avatar billede Slettet bruger
20. februar 2006 - 10:36 Der er 3 kommentarer og
1 løsning

Søgefunktion - finder alt eller ingenting!

Som overskriften siger er sådan en søgemaskine ubruglig! Jeg smider lige scriptet her:
(Bemærk! Både script og form er vedlagt)

void Soeg(Object Sender, EventArgs E) {

string strOnline, strTest, strOmraade, strStorrelse, strSovepladser, strSoverum, strStrandafstand, strHusdyr, strPool, strTV, strKoerestol, strSoegesql;
string sqlOmraade, sqlStorrelse, sqlSovepladser, sqlSoverum;
int intOmraade, intStorrelse, intSovepladser, intSoverum;
       
    intOmraade = int.Parse(Omraade.SelectedValue);
        intStorrelse = int.Parse(Storrelse.SelectedValue);
        intSovepladser = int.Parse(Sovepladser.SelectedValue);
        intSoverum = int.Parse(Soverum.SelectedValue);

    strOmraade = Omraade.SelectedValue.ToString();
    strStorrelse = Storrelse.SelectedValue.ToString();
    strSovepladser = Sovepladser.SelectedValue.ToString();
    strSoverum = Soverum.SelectedValue.ToString();
       
if (intOmraade > 0) {
            sqlOmraade = " AND omraade LIKE " + strOmraade + "";
        }
            else {
            sqlOmraade = "" ;
            }
       
if (intStorrelse > 0) {
            sqlStorrelse = " AND storrelse LIKE " + strStorrelse + "";
        }
            else {
            sqlStorrelse = "" ;
            }
           
if (intSovepladser > 0) {
            sqlSovepladser = " AND sovepladser LIKE " + strSovepladser + "";
        }
            else {
            sqlSovepladser = "" ;
            }       
       
if (intSoverum > 0) {
            sqlSoverum = " AND soverum LIKE " + strSoverum + "";
        }
            else {
            sqlSoverum = "" ;
            }
           
if (cbHusdyr.Checked) {
            strHusdyr = " AND husdyr LIKE 'ja' ";
        }
            else {
            strHusdyr = "";
            }
       
if (cbPool.Checked) {
            strPool = " AND swimmingpool LIKE 'ja' ";
        }
            else {
            strPool = "";
            }
       
if (cbTV.Checked) {
            strTV = " AND tv LIKE 'ja' ";
        }
            else {
            strTV = "";
            }
       
if (cbKoerestol.Checked) {
            strKoerestol = " AND korestolsegnet LIKE 'ja' ";
        }
            else {
            strKoerestol = "";
            }       
           
if (cbStrandafstand.Checked) {
            strStrandafstand = " AND korestolsegnet LIKE 'ja' ";
                }
                        else {
                        strStrandafstand = "";
                        }       
           
strSoegesql = "Select * FROM huse WHERE Aktiv='ja' " + sqlOmraade + sqlStorrelse + sqlSovepladser + sqlSoverum + strStrandafstand + strPool + strKoerestol + strHusdyr + strTV;

Session["SQLsoeg"] = strSoegesql;

Response.Redirect("sommerhuse.aspx");

}       
</script>
<html>
<head>
<title>S&oslash;gefunktion</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form runat="server">
<table width="320" border="0" cellspacing="0" cellpadding="0">

<tr>
<td colspan="2" bgcolor="#F5F5F5"><asp:DropDownList ID="Omraade" runat="server" Width="115" DataTextField="OmraadeNavn" DataValueField="Id" />
</td>
</tr>           
<tr>
<td bgcolor="#F5F5F5" width="115">
<asp:ListBox ID="Storrelse" Rows="1" runat="server" Width="115">
<asp:ListItem value="-1">Vælg størrelse</asp:ListItem>
<asp:ListItem value="0">Ikke angivet  </asp:ListItem>
<asp:ListItem value="50">50 m2        </asp:ListItem>
<asp:ListItem value="60">60 m2        </asp:ListItem>
<asp:ListItem value="70">70 m2        </asp:ListItem>
<asp:ListItem value="80">80 m2        </asp:ListItem>
<asp:ListItem value="90">90 m2        </asp:ListItem>
<asp:ListItem value="100">100 m2 -    </asp:ListItem>
asp:ListBox>
</td>             
<td bgcolor="#F5F5F5" width="115">
<asp:ListBox ID="Sovepladser" Rows="1" runat="server" Width="115">
<asp:ListItem value="-1">Vælg sovepladser</asp:ListItem>
<asp:ListItem value="0">Ikke angivet    </asp:ListItem>
<asp:ListItem value="1">1                </asp:ListItem>
<asp:ListItem value="2">2                </asp:ListItem>
<asp:ListItem value="3">3                </asp:ListItem>
<asp:ListItem value="4">4                </asp:ListItem>
<asp:ListItem value="5">5                </asp:ListItem>
<asp:ListItem value="6">6                </asp:ListItem>
<asp:ListItem value="7">7                </asp:ListItem>
<asp:ListItem value="8">8                </asp:ListItem>
<asp:ListItem value="9">9                </asp:ListItem>
<asp:ListItem value="10">10 -            </asp:ListItem>
</asp:ListBox></td>
</tr>
<tr>
<td bgcolor="#F5F5F5" width="115">
<asp:ListBox ID="Soverum" Rows="1" runat="server" Width="115">
<asp:ListItem value="-1">Vælg soverum</asp:ListItem>
<asp:ListItem value="0">Ikke angivet </asp:ListItem>
<asp:ListItem value="1">1            </asp:ListItem>
<asp:ListItem value="2">2            </asp:ListItem>
<asp:ListItem value="3">3            </asp:ListItem>
<asp:ListItem value="4">4            </asp:ListItem>
<asp:ListItem value="5">5            </asp:ListItem>
<asp:ListItem value="6">6            </asp:ListItem>
<asp:ListItem value="7">7 -          </asp:ListItem>
</asp:ListBox></td>
             
<td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbHusdyr" runat="server" Text="Husdyr" /></td>
</tr>
<tr>
<td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbPool" runat="server" Text="Swimmingpool" /></td>
<td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbKoerestol" runat="server" Text="Kørestolsegnet" /></td>
</tr>
<tr>
<td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbStrandafstand" runat="server" Text="Strandafstand under 1000m" /></td>
<td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbTV" runat="server" Text="TV" />
</td>
</tr>
<tr>
<td bgcolor="#F5F5F5" width="115"><asp:Button ID="btSoeg" Width="115" runat="server" Text="Søg sommerhus" OnClick="Soeg"/></td>
<td bgcolor="#F5F5F5" width="115">&nbsp;</td>
</tr>
</form>
</body>
</html>
Avatar billede spyrodrag Nybegynder
21. februar 2006 - 14:05 #1
Hej.

Prøv at vise os en af de opbyggede SQL strenge. Der må være en fejl i den streng. Og en helt anden ting, hvorfor skriver du LIKE i dine strenge? Er du ikke sikker på at dine tekster vil matche en hel linie? Du kan nemlig bruge =

Venlig hilsen,
Martin.
Avatar billede Slettet bruger
21. februar 2006 - 14:11 #2
Det viste script er et havlfærdigt projekt jeg som praktikant i et reklamebureau har overtaget er nu ved at lægge sidste hånd på! Derfor kan det være lidt svært at svare hvorfor der er brugt det ene og ikke noget andet osv. ;-)

Er det
" AND omraade LIKE "
du mener bare kan udskiftes med = ?
Avatar billede spyrodrag Nybegynder
21. februar 2006 - 14:15 #3
Hej.

AND soverum LIKE " + strSoverum + ""
Er MÅSKE det samme som
AND soverum = " + strSoverum + ""

Det kommer dog lidt an på hvordan dine data ser ud i databasen.

Kan du ikke imellem disse to linier udskrive din SQL strengs værdi?
strSoegesql = "Select * FROM huse WHERE Aktiv='ja' " + sqlOmraade + sqlStorrelse + sqlSovepladser + sqlSoverum + strStrandafstand + strPool + strKoerestol + strHusdyr + strTV;

UDSKRIV HER...

Session["SQLsoeg"] = strSoegesql;
Avatar billede Slettet bruger
17. marts 2006 - 14:14 #4
Fandt ud af det selv...

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" debug="true" %>
<%@ import namespace="System.Data"%>
<%@ import namespace="System.Data.OleDb"%>
<script runat="server">
void Page_Load(Object Sender, EventArgs E) {
    if (!IsPostBack)
    {
        OleDbDataReader dbUdvalgteReader, dbSenesteReader, dbOmraaderReader;
        OleDbConnection dbConn;
        OleDbCommand  dbCmd;
                 
        dbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database/ns.mdb")+";");
        dbConn.Open();       
       
        dbCmd = new OleDbCommand();
        dbCmd.CommandText = "SELECT [Omraade], [Id] FROM omraader ORDER BY omraade;";
        dbCmd.Connection = dbConn;

        dbOmraaderReader = dbCmd.ExecuteReader(CommandBehavior.CloseConnection);

        Omraade.Items.Add(new ListItem("Vælg område", ""));
        while (dbOmraaderReader.Read()) {
          Omraade.Items.Add(new ListItem(dbOmraaderReader.GetString(0), dbOmraaderReader.GetString(0)));
        }
        dbOmraaderReader.Close();

        dbConn.Close();
        }
    }
void Soeg(Object Sender, EventArgs E) {

string strOnline, strTest, strOmraade, strStorrelse, strSovepladser, strSoverum, strStrandafstand, strHusdyr, strPool, strTV, strKoerestol, strSoegesql;
string sqlOmraade, sqlStorrelse, sqlSovepladser, sqlSoverum;
int intOmraade, intStorrelse, intSovepladser, intSoverum;

    intStorrelse = int.Parse(Storrelse.SelectedValue);
    intSovepladser = int.Parse(Sovepladser.SelectedValue);
    intSoverum = int.Parse(Soverum.SelectedValue);

    strOmraade = Omraade.SelectedValue.ToString();
    strStorrelse = Storrelse.SelectedValue.ToString();
    strSovepladser = Sovepladser.SelectedValue.ToString();
    strSoverum = Soverum.SelectedValue.ToString();
       
        strSoegesql = "Select * FROM huse WHERE Aktiv='ja' ";
       
        if (!(strOmraade == "")) {
            strSoegesql = strSoegesql + " AND omraade LIKE '" + strOmraade + "'";
        }
       
        if (intStorrelse > 0) {
            strSoegesql = strSoegesql + " AND storrelse='" + strStorrelse + "'";
        }
           
        if (intSovepladser > 0) {
            strSoegesql = strSoegesql + " AND sovepladser='" + strSovepladser + "'";
        }
       
        if (intSoverum > 0) {
            strSoegesql = strSoegesql + " AND soverum='" + strSoverum + "'";
        }
       
        if (cbHusdyr.Checked) {
            strSoegesql = strSoegesql + " AND husdyr='ja' ";
        }
       
        if (cbPool.Checked) {
            strSoegesql = strSoegesql + " AND swimmingpool='ja' ";
        }
       
        if (cbTV.Checked) {
            strSoegesql = strSoegesql + " AND tv='ja' ";
        }
       
        if (cbKoerestol.Checked) {
            strSoegesql = strSoegesql + " AND korestolsegnet='ja' ";
        }
                       
Session["SQLsoeg"] = strSoegesql;
//Response.Write(strSoegesql);
Response.Redirect("sommerhuse2.aspx");
}       
</script>
<html>
<head>
<title>S&oslash;gefunktion</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form runat="server">
<table width="320" border="1" cellspacing="0" cellpadding="0">
            <tr>
              <td colspan="2" bgcolor="#F5F5F5"><asp:DropDownList ID="Omraade" runat="server" Width="115" DataTextField="OmraadeNavn" DataValueField="Id" /></td>
            </tr>           
            <tr>
              <td bgcolor="#F5F5F5" width="115">
              <asp:ListBox ID="Storrelse" Rows="1" runat="server" Width="115">
                <asp:ListItem value="-1">Vælg størrelse</asp:ListItem>
                <asp:ListItem value="0">Ikke angivet  </asp:ListItem>
                <asp:ListItem value="50">50 m2        </asp:ListItem>
                <asp:ListItem value="60">60 m2        </asp:ListItem>
                <asp:ListItem value="70">70 m2        </asp:ListItem>
                <asp:ListItem value="80">80 m2        </asp:ListItem>
                <asp:ListItem value="90">90 m2        </asp:ListItem>
                <asp:ListItem value="100">100 m2 -    </asp:ListItem>
                </asp:ListBox></td>             
              <td bgcolor="#F5F5F5" width="115">
                  <asp:ListBox ID="Sovepladser" Rows="1" runat="server" Width="115">
                <asp:ListItem value="-1">Vælg sovepladser</asp:ListItem>
                <asp:ListItem value="0">Ikke angivet    </asp:ListItem>
                <asp:ListItem value="1">1                </asp:ListItem>
                <asp:ListItem value="2">2                </asp:ListItem>
                <asp:ListItem value="3">3                </asp:ListItem>
                <asp:ListItem value="4">4                </asp:ListItem>
                <asp:ListItem value="5">5                </asp:ListItem>
                <asp:ListItem value="6">6                </asp:ListItem>
                <asp:ListItem value="7">7                </asp:ListItem>
                <asp:ListItem value="8">8                </asp:ListItem>
                <asp:ListItem value="9">9                </asp:ListItem>
                <asp:ListItem value="10">10 -            </asp:ListItem>
                </asp:ListBox></td>
            </tr>
            <tr>
              <td bgcolor="#F5F5F5" width="115">
              <asp:ListBox ID="Soverum" Rows="1" runat="server" Width="115">
                <asp:ListItem value="-1">Vælg soverum</asp:ListItem>
                <asp:ListItem value="0">Ikke angivet </asp:ListItem>
                <asp:ListItem value="1">1            </asp:ListItem>
                <asp:ListItem value="2">2            </asp:ListItem>
                <asp:ListItem value="3">3            </asp:ListItem>
                <asp:ListItem value="4">4            </asp:ListItem>
                <asp:ListItem value="5">5            </asp:ListItem>
                <asp:ListItem value="6">6            </asp:ListItem>
                <asp:ListItem value="7">7 -          </asp:ListItem>
                </asp:ListBox></td>
              <td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbHusdyr" runat="server" Text="Husdyr" /></td>
              </tr>
            <tr>
              <td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbPool" runat="server" Text="Swimmingpool" /></td>
              <td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbKoerestol" runat="server" Text="Kørestolsegnet" /></td>
              </tr>
            <tr>
              <td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbStrandafstand" runat="server" Text="Strandafstand under 1000m" /></td>
              <td bgcolor="#F5F5F5" width="115"><asp:CheckBox ID="cbTV" runat="server" Text="TV" />
              </td>
              </tr>
            <tr>
              <td bgcolor="#F5F5F5" width="115"><asp:Button ID="btSoeg" Width="115" runat="server" Text="Søg sommerhus" OnClick="Soeg"/></td>
              <td bgcolor="#F5F5F5" width="115">&nbsp;</td>
            </tr>
</table>
</form>
</body>
</html>
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