Avatar billede simsen Mester
25. november 2006 - 20:50 Der er 4 kommentarer og
1 løsning

et bestemt felt bliver ikke hentet fra databasen

Hej

Jeg henter forskellige felter ind i en tabel, som jeg så viser med en repeater. Der er dog et felt, den ikke vil hente ind og det er "overskriftlink" De andre felter henter den godt nok. Kan nogen se, hvor jeg laver en fejl?

koderne:

AnjaConnection.cs:
public class AnjaConnection
{
    //Ny instans af klassen dbConnection
    dbConnection connection = new dbConnection();
    public OleDbCommand command = null;

    public AnjaConnection()
    {
        command = connection.command;
    }

    //Lister Scripts osv fra databasen
    public DataTable GetInfo(string name)
    {
        //sætter datarow til nul
        DataRow row = null;

        //opretter en instans af Datatable
        DataTable myDataTable = new DataTable();

        //Tilføjer colonner, der svarer til tabel kolonnerne til datatable
        myDataTable.Columns.Add(new DataColumn("ID", Type.GetType("System.String")));
        myDataTable.Columns.Add(new DataColumn("kategori", Type.GetType("System.String")));
        myDataTable.Columns.Add(new DataColumn("overskriftlink", Type.GetType("System.String")));
        myDataTable.Columns.Add(new DataColumn("overskrift", Type.GetType("System.String")));
        myDataTable.Columns.Add(new DataColumn("beskrivelse", Type.GetType("System.String")));
        myDataTable.Columns.Add(new DataColumn("opbygninglink", Type.GetType("System.String")));
        myDataTable.Columns.Add(new DataColumn("opbygning", Type.GetType("System.String")));

        //Hvilken select jeg arbejder med
        command.CommandText = "SELECT * FROM Oversigt WHERE kategori = @name";

        command.Parameters.Clear();
        command.Parameters.AddWithValue("@name", name);

        OleDbDataReader myReader = command.ExecuteReader();

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

            try
            {
                row["ID"] = (myReader["ID"]);
                row["kategori"] = (myReader["kategori"]);
                row["overskriftlink"] = (myReader["overskriftlink"]);
                row["overskrift"] = (myReader["overskrift"]);
                row["beskrivelse"] = (myReader["beskrivelse"]);
                row["opbygninglink"] = (myReader["opbygninglink"]);
                row["opbygning"] = (myReader["opbygning"]);
            }
            catch
            { }

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

        myReader.Close();

        return myDataTable;
    }
}

Scripts.aspx.cs
public partial class Scripts_Scripts : System.Web.UI.Page
{
    AnjaConnection anjaconnection = new AnjaConnection();

    protected void Page_Load(object sender, EventArgs e)
    {
        //Opretter ny instans af GetInfo fra AnjaConnection
        DataTable scriptinfo = anjaconnection.GetInfo("Script");

        minRepeater.DataSource = scriptinfo;
        minRepeater.DataBind();
    }
}

Scripts.aspx:
<itemTemplate>
                    <tr>
                        <td style="text-align: left; vertical-align: top;">
                            <a href="java script:;" onclick=" startVindue('<%# DataBinder.Eval(Container.DataItem, "overskriftlink")%>','<%# DataBinder.Eval(Container.DataItem, "Overskrift")%>','820','650','scrollbars=no')">
                                <%# DataBinder.Eval(Container.DataItem, "Overskrift")%> 
                            </a>
                        </td>
                        <td style="text-align: left; vertical-align: top;">
                            <%# DataBinder.Eval(Container.DataItem, "Beskrivelse")%>
                        </td>
                    </tr>
                    </itemTemplate>

Kopierer jeg data (startVindue/startVindue.aspx) direkte ind i koden istedet for <%# DataBinder.Eval(Container.DataItem, "overskriftlink")%> på følgende måde:
<a href="java script:;" onclick=" startVindue('startVindue/startVindue.aspx','<%# DataBinder.Eval(Container.DataItem, "Overskrift")%>','820','650','scrollbars=no')">
får jeg det korrekte vindue op. Jeg ved med sikkerhed at teksten i tabellen er den korrekte, da jeg i ovennævnte test, har copy/pastet fra databasen for at undgå der måske er en skrivefejl et sted.

mvh
simsen
Avatar billede erikjacobsen Ekspert
25. november 2006 - 20:56 #1
Umiddelbart ser det rigtigt ud. Men prøv alligevel at tage felterne i samme rækkefølge som du aflæser dem. "SELECT *" kan ikke altid bare lade sig gøre

  command.CommandText = "SELECT ID,kategori,overskriftlink,overskrift,beskrivelse,opbygningslink,opbygning FROM Oversigt WHERE kategori = @name";
Avatar billede simsen Mester
25. november 2006 - 21:53 #2
Hej Erik,

Jeg forsøger mig med følgende:

command.CommandText = "SELECT ID, kategori, overskriftlink, overskrift,beskrivelse, opbygningslink, opbygning FROM Oversigt WHERE kategori = @name";


Nu får jeg følgende fejl, når jeg går ind på siden script.aspx:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: No value given for one or more required parameters.

Source Error:


Line 48:        command.Parameters.AddWithValue("@name", name);
Line 49:
Line 50:        OleDbDataReader myReader = command.ExecuteReader();
Line 51:
Line 52:        //går gennem tabellen og lægger ind i rækker
Avatar billede bgo Nybegynder
25. november 2006 - 23:09 #3
"Exception Details: System.Data.OleDb.OleDbException: No value given for one or more required parameters."

hmm. minder om når en connect string er forkert og/eller en kolonne er stavet forkert i asp
Avatar billede simsen Mester
09. december 2006 - 09:01 #4
bgo

Det var lige netop det der var galt, smid et svar

mvh
simsen :-)
Avatar billede bgo Nybegynder
09. december 2006 - 16:15 #5
here you go ;)
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



Seneste spørgsmål Seneste aktivitet
I dag 10:28 PDFEngine Af barth i Andet software
I går 22:40 Butte indhold i celler Af lurup i Excel
I går 15:24 Power Query Af djsimonsen i Excel
I går 14:43 Hvis ikke på liste, tilføj værdier til liste Af TheLibrarian i Excel
I går 11:33 Windows 11 Af ranni i Windows