Results 1 to 3 of 3

Thread: Parameter.Value niet toekennen bij een Insert?

  1. #1
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415

    Parameter.Value niet toekennen bij een Insert?

    In een ASP.NET Tes project gebruik ik de volgende code voor het Inserten van een record:
    Code:
    procedure TDefault.Button1_Click(sender: System.Object; e: System.EventArgs);
    var
     AConnection : SqlConnection;
     ACommand :SqlCommand;
     i: Integer;
    begin
     AConnection := SqlConnection.Create(ConfigurationSettings.AppSettings['ConnString']);
     ACommand := SqlCommand.Create('Boeking', AConnection);
    
     ACommand.CommandText:=
     '/*BoekingOpslaan*/ '+
      'INSERT INTO Aspiranten '+
      '(ReisID, Voornaam, Achternaam, Straat, Extra1) '+
      'VALUES '+
      '(@ReisID, @Voornaam, @Achternaam, @Straat, @Extra1) ';
    
     AConnection.Open;
     try
      ACommand.Parameters.Add('@ReisID', SqlDbType.Int, 4);
      ACommand.Parameters.Add('@Voornaam', SqlDbType.NVarChar, 15);
      ACommand.Parameters.Add('@Achternaam', SqlDbType.NVarChar, 30);
      ACommand.Parameters.Add('@Straat', SqlDbType.NVarChar, 30);
      ACommand.Parameters.Add('@Extra1', SqlDbType.Int, 4);
    
      ACommand.Parameters['@ReisID'].Value:= TObject(25);
      ACommand.Parameters['@Voornaam'].Value:= 'Piet';
      ACommand.Parameters['@Achternaam'].Value:= 'Jansen';
      ACommand.Parameters['@Straat'].Value:= 'Langestraat';
      ACommand.Parameters['@Extra1'].Value:= TObject(999);
    
      i:= ACommand.ExecuteNonQuery;
      Label1.Text:= i.ToString;
     finally
      AConnection.Close;
     end;
    end;
    Dit gaat prima tot ik een van de parameters geen value geeft door bv de deze regel uit te

    commenteren
    Code:
    //ACommand.Parameters['@Extra1'].Value:= TObject(999);
    
    Dan krijg ik deze foutmelding:
    Prepared statement '(@ReisID int,@Voornaam nvarchar(15),@Achternaam

    nvarchar(30),@St' expects parameter @Extra1, which was not supplied.
    Vrij logisch - maar ik wil eigenlijk niet als er bv geen "straat" is ingevuld een lege

    string als default mee geven. Ik heb immers in de database (SQL Server 2000) al geregeld

    dat er een default waarde wordt ingevuldt als er geen waarde is.

    Hoe doe jullie dit?
    Anders

    May your code compile!

  2. #2
    Je kunt een parameter niet zomaar weglaten, dus moet je er wel een lege waarde (NULL) in zetten. Dus vul je parameter met DBNull.Value, je database ziet dat als een lege waarde en vult zijn default waarde in.
    Marcel

  3. #3
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    OK bedankt Marcel - die zocht ik
    Anders

    May your code compile!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 34
    Last Post: 18-Dec-03, 00:23
  2. CTTM 2003
    By Marcel in forum Koffiehoek
    Replies: 26
    Last Post: 02-Jun-03, 13:02

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •