Avatar billede decrypto Nybegynder
17. oktober 2008 - 17:07 Der er 8 kommentarer

Tilgå en SQL Server gennem Enterprise Library

Jeg har næsten altid uden problem fået hul igennem til en tiltænkt database.

Nu er det jeg har valgt at prøve mig med Enterprise Library, og det virker tilsyneladende fint. Det ser ud som om, at der er hul igennem. Jeg har dog problemer med at kalde en Stored Procedure, som taget eet enkelt argument.

Der bliver kastet en exception, om at jeg ikke har sendt en parameter med i kaldet af min stored procedure.
Min stored procedure er helt fin, og virker fint ved at fx kalde den via Query Analyzer.

Kan simpelthen ikke se hvad der er galt med mig kode:

string cmdTxt = "GetCharacter";
try {
    Database db = DatabaseFactory.CreateDatabase();//ConfigurationManager.ConnectionStrings["SAMConncection"].ConnectionString 
    using (DbCommand dbCommand = db.GetStoredProcCommand(cmdTxt)) {
    db.AddInParameter(dbCommand, "characterId", DbType.Int16, 1);
    IDataReader reader = db.ExecuteReader(CommandType.StoredProcedure, cmdTxt);
}
} catch (Exception ex) {
    string message = ex.ToString();
  }

-------------------------------
Har kigget på nettet, men jeg har ikke fået det afgørende gennembrud.
Er der nogen der kan hjælpe?
Avatar billede arne_v Ekspert
17. oktober 2008 - 17:10 #1
Er du sikker paa at parameteren ikke skal vaere @characterId ?
Avatar billede decrypto Nybegynder
17. oktober 2008 - 17:14 #2
$exception   
{"Procedure 'GetCharacter' expects parameter '@characterId', which was not supplied."}    System.Exception {System.Data.SqlClient.SqlException}
Avatar billede decrypto Nybegynder
17. oktober 2008 - 17:15 #3
jeg har også prøvet med @ foran, men har ikke ændret ved fejlen. :(
Avatar billede decrypto Nybegynder
18. oktober 2008 - 00:00 #4
Det virker hvis, hvis jeg bruger en stored proc, der ikke kræver argumenter...men forstår slet ikke hvorfor, den ikke kan tage imod mine argumenter i den anden.
Avatar billede arne_v Ekspert
18. oktober 2008 - 04:13 #5
Jeg tror at dit problem er at du executer navnet på din SP ikke den command som
indeholder både navn på SP og parameter.

IDataReader reader = db.ExecuteReader(CommandType.StoredProcedure, cmdTxt);

->

IDataReader reader = db.ExecuteReader(dbCommand);
Avatar billede decrypto Nybegynder
18. oktober 2008 - 09:10 #6
Ved du hvad....det var faktisk lige præcis det....ved ikke hvorfor jeg brugte min cmdText til det, da det jo slet ikke giver mening, da jeg jo skal bruge min dbCommand istedet.

Det virker fint nu....tusinde tak for hjælpen. Smid et svar ind..
(Dum fejl fra min side) :)
Avatar billede arne_v Ekspert
18. oktober 2008 - 15:45 #7
svar
Avatar billede arne_v Ekspert
30. oktober 2008 - 02:21 #8
så mangler du bare at acceptere
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