Avatar billede jhoumann Nybegynder
07. marts 2007 - 10:52 Der er 5 kommentarer og
1 løsning

Indsættelse i Access-DB - Number of Query Values

Hej,
Prøver at indsætte en record i en Access-DB med følgende kode:

public void Opret(object Sender, EventArgs e)
    {
        OleDbConnection MyConnection;
        OleDbCommand MyCommand;
        MyConnection = new OleDbConnection();
        MyConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ReservationConnection"].ConnectionString;
       
        string strSQL = System.Configuration.ConfigurationManager.AppSettings.Get("SQLInsertString");
        MyCommand = new OleDbCommand(strSQL, MyConnection);
        try
        {
            MyConnection.Open();

           
            MyCommand.Parameters.Add("@datDato", OleDbType.Date);
            MyCommand.Parameters.Add("@strArrangement", OleDbType.VarChar);
            MyCommand.Parameters.Add("@strReserveretAf", OleDbType.VarChar);
            MyCommand.Parameters.Add("@datReserveretDato", OleDbType.Date);
            MyCommand.Parameters.Add("@strBemaerk", OleDbType.VarChar);
           

           
            MyCommand.Parameters["@datDato"].Value = DateTime.Today;
            MyCommand.Parameters["@strArrangement"].Value = "JagtMiddag";
            MyCommand.Parameters["@strReserveretAf"].Value = "Søren Sømand";
            MyCommand.Parameters["@datReserveretDato"].Value = DateTime.Today;
            MyCommand.Parameters["@strBemaerk"].Value = "Ingen";
            MyCommand.ExecuteNonQuery();
           
        }
        catch (Exception exept)
        {
            lblFejlmeddelelse.Text = Convert.ToString(exept);
        }

        MyConnection.Close();


Får følgende fejl:

System.Data.OleDb.OleDbException: Number of query values and destination fields are not the same. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at Tilfoej.Opret(Object Sender, EventArgs e) in c:\SletMig\kalender\Tilfoej.aspx.cs:line 46


Min INSERT string ser således ud, og er placeret i web.config:

<appSettings>
    <add key="SQLInsertString"
        value = "INSERT INTO Reservation VALUES (@datDato,@strArrangement,@strReserveretAf,@datReserveretDato,@strBemaerk)" />
  </appSettings>

Mit databaselayout er således:
Nr            Autonummerering
Dato          Dato og klokkeslæt
Arrangement    Tekst
ReserveretAf  Tekst
ReserveretDato Dato og klokkeslæt
Bemaerk        Tekst

Det eneste felt jeg ikke indsætter noget i, er autonummereringen, hvilket ikke plejer at være nødvendigt.
Hvad er der galt?
Avatar billede kalp Novice
07. marts 2007 - 11:00 #1
"INSERT INTO Reservation (Dato,Arrangement,ReserveretAf,ReserveretDato,Bemaerk) VALUES (@datDato,@strArrangement,@strReserveretAf,@datReserveretDato,@strBemaerk)" />
Avatar billede kalp Novice
07. marts 2007 - 11:01 #2
som du kan se angiver jeg hvilke kolonner der skal indsættes i.. og dermed udelukker jeg "Nr" feltet og så vil det virke.
Avatar billede jhoumann Nybegynder
07. marts 2007 - 11:11 #3
Ja, men så er det fordi der er tale om Access. Har lavet det samme med SQL-Server og her behøver man ikke at angive rækken, når der er tale om en hel post, eksklusiv autonummererede felter. Prøver lige!
Avatar billede kalp Novice
07. marts 2007 - 11:27 #4
Det skal angives i Access.

Nu har jeg ikke testet det du siger i MSSQL, men vil mene, at jeg også angiver dem der lige pånær når det er stored procedures!
Avatar billede jhoumann Nybegynder
07. marts 2007 - 11:53 #5
Tak, jeg har haft det kørende uden angivelse i MSSQL. Derfor forvirringen. Det var et gammelt eksempel jeg tog udgangspunkt i. Det virker i øvrigt nu.
Avatar billede kalp Novice
07. marts 2007 - 12:03 #6
Det lyder godt:-)

og selv tak:)
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