myCommand.Parameters.Add("@customerID",SqlDbType.Int);
myCommand.Parameters["@customerID"].Value=1;
myCommand.Parameters.Add("@orderID",SqlDbType.Int);
myCommand.Parameters["@orderID"].Value=10;
myCommand.CommandText="INSERT INTO table1 (customerID) VALUES (@customerID)";
myCommand.ExecuteNonQuery();
myCommand.CommandText="INSERT INTO table2 (orderID) VALUES (@orderID)";
myCommand.ExecuteNonQuery();
Hej jag undrar om man kan deklarera alla parametrar man ska använda i de 2 sql satserna först. Och sedan bara ändra värdet i commandtext efterhand när jag gör Execute:sen?, alltså deklarera ALLA parametrar allra först även om jag inte använder ALLA parametrar utan bara 1 i varje SQL sats. Eller måste jag döda hela parameter-collection:en och bygga upp en ny för varje execute?.
Och är det också OK att göra såhär nedan, att bara ändra värdet i parametern och göra en ny execute?.
1. Du måste "döda" parameterkollektionen inför nästa fråga. Om du deklarerar flera parametrar så skickas de ändå med in i databasen vilket genererar ett fel om din SP inte "behöver" ett visst parameternamn. Prova gärna så ser du om ditt exempel ovan fungerar eller inte.
2. Det som kan orsaka problem i fråga två är att det bara fungerar så länge parametern i din SP heter customerID. Om du sedan försöker anropa en SP där parametern t.ex. heter userID så får du ett fel.
Men som sagt ovan, prova gärna. Jag kan ju ha fel. ;)