11. juni 2009 - 23:35Der er
5 kommentarer og 1 løsning
kan ikke kalde stored procedure flere gange
Kalder en stored procedure der henter alle data fra en tabel ved programmets constructor. Dette virker fint. Når jeg så kalder den samme stored procedure fra en metode senere for at genindhente alle data fra samme tabel, så gives en exception
procedure .... has no parameters and arguments were supplied
using System; using System.Collections.Generic; using System.Text; using Model; using Interfaces; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes;
namespace Controllers { class DB { private SqlConnection con; private SqlCommand cmd;
private Controller boligforening;
public DB(Controller boligforening) { this.boligforening = boligforening;
using System; using System.Collections.Generic; using System.Collections; using System.Text; using Model; using Interfaces; using System.IO;
namespace Controllers { public class Controller { //ATTRIBUTTER private BilagsCollection bilagsCol; private KontoCollection kontoCol; private DB dbfacade; private FaellesCol faellesCol; private BeboerCollection beboerCol;
//KONSTRUKTØR public Controller() { bilagsCol = new BilagsCollection(); kontoCol = new KontoCollection(); dbfacade = new DB(this); faellesCol = new FaellesCol(); beboerCol = new BeboerCollection(); dbfacade.HentBilag(); dbfacade.HentTyper(); //det er denne her som er problemet. Men her kan jeg godt kalde den flere gange, hvis jeg vil. dbfacade.HentFaelles(); dbfacade.Hentboere(); TjekAar(); } public void OpretTyperModel(int id, string kontotype) { kontoCol.OpretTyper(id, kontotype); }
public bool OpretType(string nytype) { if (dbfacade.OpretType(nytype)) { dbfacade.HentTyper(); //Her går det galt, og giver en exception ovre i dbfacade. return true; } else return false; }
Du bruger den samme SqlCommand til både HentTyper og OpretType. Ved OpretType tilføjer du et parameter, hvis du så efterfølgende kalder HentTyper, vil dette parameter stadig være der, og det giver fejl hvis den stored procedure ikke forventer nogen parameter.
Så enten skal du bruge forskellige SqlCommands eller også skal du bruge cmd.Parameters.Clear(); i starten af HentTyper
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.