Avatar billede jokkejensen Novice
14. oktober 2006 - 13:26 Der er 1 kommentar og
1 løsning

SqlDbType som parameter på metode

Hey..

Sidder og forsøger at bruge storedprocedues i stedet for adhoc sql og er løbet ind i et lille problem..

jeg har følgende til at oprette en sqlparameter :

public SqlParameter SqlParam(string name, string value, SqlDbType dbtype)
        {
            SqlParameter param = new SqlParameter();
            param.SqlDbType = dbtype;
            param.ParameterName = name;
            param.Value = value;
           
            return param;
        }

Men når jeg forsøger at tilgå den med følgende :

SqlParameterCollection col = null;
 
        col.Add(DB.SqlParam("@username", "Jokke Jensen", SqlDbType.VarChar));

Får jeg følgende fejl :

System.NullReferenceException was unhandled by user code
  Message="Object reference not set to an instance of an object."
  Source="App_Web_0knqffek"
  StackTrace:
      at _Default.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\Modeltypes\Default.aspx.cs:line 35
      at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
      at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
      at System.Web.UI.Control.OnLoad(EventArgs e)
      at System.Web.UI.Control.LoadRecursive()
      at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

og den foreslår jeg skal : Use the "new" keyword.... foran SqlDbType.VarChar

nogen der har et bud, eller griber jeg det helt forkert an ?

På forhånd tak

/JJ
Avatar billede jokkejensen Novice
14. oktober 2006 - 14:10 #1
JokkeJensen sagde:
hey dennis, du skulle ikke have 10 sec til at kigge på http://www.eksperten.dk/spm/738523
 
  Opgiv aldrig din adgangskode eller dit kreditkortnummer i en samtale via onlinemeddelelser.
 
Dennis siger:
jeg tror fejlen ligger et andet sted
JokkeJensen siger:
hmmm ok, takker 
JokkeJensen siger:
ser om jeg kan finde noget kode et eller andet sted 
Dennis siger:
Hvad med Page load i Default
JokkeJensen siger:
det er der jeg forsøger at køre det
JokkeJensen siger:
det er der jeg skriver col.add
Dennis siger:
Prøv at copy-paste Load delen herind
JokkeJensen siger:
Database DB = new Database();
       
       
        SqlParameterCollection col = null;
 
        col.Add(DB.SqlParam("@username", "Jokke Jensen", SqlDbType.VarChar));
Dennis siger:
SqlParameterCollection col = new SqlParameterCollection(),
Dennis siger:
;
JokkeJensen siger:
men så giver den en anden fejl
Dennis siger:
Du kan ikke kalde en metode på et null objekt
JokkeJensen siger:
okay, men når jeg skfriver som du siger siger den : "cannot access an internal construcktor
Dennis siger:
jeg slår den lige op
Dennis siger:
Du kan ikke explicit lave en  SqlParameterCollection
Dennis siger:
prøv med
Dennis siger:
SqlCommand cmd = new SqlCommand();
Dennis siger:
cmd.Parameters.Add(DB.SqlParam...........)
JokkeJensen siger:
jeps.. men det er fordi jeg har en metode : public DataTable getDataTable(SqlParameterCollection sqlParams) .. hvordan får jeg ellers X antal parametre med ned i den ?
Dennis siger:
du kan ændre metoden til at tage en List<SqlParameter> som argument
JokkeJensen siger:
aha, takker, kan jeg bruge den list på alle objecter ?
Dennis siger:
jeps
JokkeJensen siger:
super takker - jeg prøver mig frem, beklager forstyrrelsen, smider du lige et svar på ekspterne.dk
Avatar billede driis Nybegynder
14. oktober 2006 - 14:11 #2
Du sætter SqlParameterCollection col = null og kalder dernæst col.Add(..)

Du kan ikke kalde metoder på et objekt der er null.
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