Avatar billede simsen Mester
12. maj 2007 - 20:10 Der er 2 kommentarer og
1 løsning

Fejl ved variabel i select statement Fortsat

Jeg troede, jeg forstod det....men gør jeg åbenbart ikke....

fortsat fra: http://www.eksperten.dk/spm/777951

Jeg har forsøgt mig med nedennævnte kode: The name 'seekstring2' does not exist in the current context (det samme med 3-8)

Så har jeg sat følgende kode ind i toppen:

        string seekstring2 = seekstring;
        string seekstring3 = seekstring;
        string seekstring4 = seekstring;
        string seekstring5 = seekstring;
        string seekstring6 = seekstring;
        string seekstring7 = seekstring;
        string seekstring8 = seekstring;

Men får så en Type mitmatch.....

Hvad går der galt? *deseperat*

Min kode:

public Status GetSeekSimpelSortNameMine(string seekstring, int BrugerId, ref DataTable SeekSimpel)
    {
        Status status = Status.Failure;

        DataRow r = null;
        DataTable AItems = new DataTable();

        string seekstring2 = seekstring;
        string seekstring3 = seekstring;
        string seekstring4 = seekstring;
        string seekstring5 = seekstring;
        string seekstring6 = seekstring;
        string seekstring7 = seekstring;
        string seekstring8 = seekstring;

        try
        {
            AItems.Columns.Add(new DataColumn("OpskriftId", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("OpskriftNavn", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Ingredienser", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Fremgangsmaade", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Servering", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Points", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Dato", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Print", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("BrugerNavn", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("KategoriNavn", Type.GetType("System.String")));

           

            command.CommandText = "SELECT Opskrift.OpskriftId, Opskrift.OpskriftNavn, Opskrift.KategoriId, Opskrift.LandId, Opskrift.TemaId, Opskrift.MaaltidId, Opskrift.Tilberedningstid, Opskrift.BrugerId, Opskrift.Kilde, Opskrift.PortionStk, Opskrift.Protein, Opskrift.Fedt, Opskrift.Kulhydrat, Opskrift.Pris, Opskrift.BilledeNavn, Opskrift.Ingredienser, Opskrift.Fremgangsmaade, Opskrift.Servering, Opskrift.Fedtfattig, Opskrift.AntalVisninger, Opskrift.Offentlig, Opskrift.Dato, Opskrift.Print, Opskrift.Points, Opskrift.AntalPersonerAfgivetPoints, Bruger.BrugerNavn, Kategori.KategoriNavn  FROM (Kategori INNER JOIN Opskrift ON Kategori.KategoriId=Opskrift.KategoriId) INNER JOIN Bruger ON Opskrift.BrugerId=Bruger.BrugerId WHERE (((Opskrift.BrugerId) = @BrugerId1)) AND (Opskrift.OpskriftNavn Like '%" + @seekstring + "%' OR Opskrift.Ingredienser Like '%" + @seekstring2 + "%' OR Opskrift.Fremgangsmaade Like '%" + @seekstring3 + "%' OR Opskrift.Servering Like '%" + @seekstring4 + "%') UNION SELECT Opskrift.OpskriftId, Opskrift.OpskriftNavn, Opskrift.KategoriId, Opskrift.LandId, Opskrift.TemaId, Opskrift.MaaltidId, Opskrift.Tilberedningstid, Opskrift.BrugerId AS Opskrift_BrugerId, Opskrift.Kilde, Opskrift.PortionStk, Opskrift.Protein, Opskrift.Fedt, Opskrift.Kulhydrat, Opskrift.Pris, Opskrift.BilledeNavn, Opskrift.Ingredienser, Opskrift.Fremgangsmaade, Opskrift.Servering, Opskrift.Fedtfattig, Opskrift.AntalVisninger, Opskrift.Offentlig, Opskrift.Dato, Opskrift.Print, Opskrift.Points, Opskrift.AntalPersonerAfgivetPoints, Bruger.BrugerNavn, Kategori.KategoriNavn FROM Bruger INNER JOIN (Kategori INNER JOIN (Opskrift INNER JOIN GemteOpskrifter ON Opskrift.OpskriftId = GemteOpskrifter.OpskriftId) ON Kategori.KategoriId = Opskrift.KategoriId) ON Bruger.BrugerId = GemteOpskrifter.BrugerId WHERE (((GemteOpskrifter.BrugerId)= @BrugerId2)) AND (Opskrift.OpskriftNavn Like '%" + @seekstring5 + "%' OR Opskrift.Ingredienser Like '%" + @seekstring6 + "%' OR Opskrift.Fremgangsmaade Like '%" + @seekstring7 + "%' OR Opskrift.Servering Like '%" + @seekstring8 + "%')";

            command.Parameters.Clear();           
            //command.Parameters.Add(new OleDbParameter("@seekstring", seekstring));
            command.Parameters.Add(new OleDbParameter("@BrugerId1", BrugerId));
            command.Parameters.Add(new OleDbParameter("@seekstring", seekstring));
            command.Parameters.Add(new OleDbParameter("@seekstring2", seekstring));
            command.Parameters.Add(new OleDbParameter("@seekstring3", seekstring));
            command.Parameters.Add(new OleDbParameter("@seekstring4", seekstring));
            command.Parameters.Add(new OleDbParameter("@BrugerId2", BrugerId));
            command.Parameters.Add(new OleDbParameter("@seekstring5", seekstring));
            command.Parameters.Add(new OleDbParameter("@seekstring6", seekstring));
            command.Parameters.Add(new OleDbParameter("@seekstring7", seekstring));
            command.Parameters.Add(new OleDbParameter("@seekstring8", seekstring));

            OleDbDataReader myReader = command.ExecuteReader();

            //går gennem tabellen og lægger ind i rækker
            while (myReader.Read())
            {
                r = AItems.NewRow();

                try
                {
                    r["OpskriftId"] = (myReader["OpskriftId"]);
                    r["OpskriftNavn"] = (myReader["OpskriftNavn"]);
                    r["Ingredienser"] = (myReader["Ingredienser"]);
                    r["Fremgangsmaade"] = (myReader["Fremgangsmaade"]);
                    r["Servering"] = (myReader["Servering"]);
                    r["Points"] = (myReader["Points"]);
                    r["Dato"] = (myReader["Dato"]);
                    r["Print"] = (myReader["Print"]);
                    r["BrugerNavn"] = (myReader["BrugerNavn"]);
                    r["KategoriNavn"] = (myReader["KategoriNavn"]);
                }
                catch
                { }

                //Tilføjer rækken til datatable
                AItems.Rows.Add(r);
            }

            myReader.Close();
            SeekSimpel = AItems;
            status = Status.Success;
        }
        catch
        { }

        return status;
    }

mvh
simsen
Avatar billede dr_chaos Nybegynder
12. maj 2007 - 20:14 #1
prøv lige at ændre :
'%" + @seekstring2 + "%'
til
'%' + @seekstring2 + '%'

og det skal ske alle steder hvor du har brugt
'%" + @seekstring(et nummer) + "%'
Avatar billede simsen Mester
12. maj 2007 - 20:55 #2
dr_chaos

Lige det der skulle til - seekstring uden nummer skulle dog også med....

Gider du fortælle hvorfor enkelt plinger og ikke dobbelt og så lægge et svar. Tak for hjælpen igen :-)

mvh
simsen :-)
Avatar billede dr_chaos Nybegynder
12. maj 2007 - 21:05 #3
fordi "" betyder at du afslutter den streng du opbygger og derfor leder den efter en varibel med navnet @seekstring2.
Svar :)
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