Avatar billede webdesigner Praktikant
23. maj 2010 - 05:32 Der er 7 kommentarer

Parameters.Add paser ikke parameters

hej min metode paser ikke parametre ind min strSQL i metoden.
her er koden

public void Addnews(newsProperty Prop)
{
strSQL = "INSERT INTO News (fldTitle, fldArticle, fldAuthure, fldDate) VALUES (@Title, @Article, @Authure, @Date)";

objCMD = new OleDbCommand(strSQL);

objCMD.Parameters.Add("@Title", OleDbType.VarChar).Value = Prop._title;
objCMD.Parameters.Add("@Article", OleDbType.VarChar).Value = Prop._Article;
objCMD.Parameters.Add("@Authure", OleDbType.Integer).Value = 1;
objCMD.Parameters.Add("@Date", OleDbType.Date).Value =  DateTime.Now;

        objData.modifyData(objCMD.CommandText);
    }
Avatar billede softspot Forsker
23. maj 2010 - 09:40 #1
Nu ved ikke rigtig hvad modifydata gør, men for mig ser det ud til at du opretter er command-objekt og tildeler parametrene værdier, hvorefter du nøjes med at sende selve SQL-strengen over (uden de paramtre du lige har initieret).

Hvad er modifyData for en metode og findes der evt. en overload som tager et command-objekt i stedet for kun en SQL-streng?
Avatar billede janus_007 Nybegynder
23. maj 2010 - 19:48 #2
webdesigner-> må jeg spørge om hvorfor du lige har valgt den metode, fremfor Linq?
Avatar billede Syska Mester
23. maj 2010 - 22:49 #3
Giver softspot ret.

CommandText på din OleDbCommand svarer til den rå sql tekst du assigner i Construtoren.

Så du skal nok sende hele din command object med over din til ModifyData metode.

janus_007:
Metode er vel så meget sagt ... men du mener vel hvorfor han ikke har valgt en ORM? som LINQ 2 SQL, Entiries Framework, NHibernate etc. eller ?

mvh
Avatar billede janus_007 Nybegynder
23. maj 2010 - 23:15 #4
Ja buzzz, det er hvad jeg mener. Det hører sig snart sjældenheder til at se den gammeldags metode der (som ikke er en funktion *S*), medmindre det er et krav fra kunden eller databasen ikke lige er noget der er understøttet.

Så hvis webdesigner ikke har tænkt over det gode alternativ så kunne det jo være han skulle kigge i den retning. Det er jo uendeligt meget nemmere at bruge Linq to Sql eks.vis istedet for selv at sidde med Ado.Net, parametre, sprocs osv.
Avatar billede Syska Mester
23. maj 2010 - 23:55 #5
eller LINQ2SQL ikke kan lave det optimalt :-)

Men nej, jeg ville heller ikke drømme om at gøre det på andre måder i dag. Dog har jeg et par steder hvor jeg laver en millard joins og et hav af conditions. Der kan det godt betale sig performance wise.

Ja ... man skal vide det er der, men det er også vigtigt at kunne sin sql, og huske at profile det, da den nogen gange kan komme frem til nogen ret så "Not optimal" SQL quries.
Avatar billede janus_007 Nybegynder
24. maj 2010 - 03:28 #6
Jeg sidder også altid med profileren, uden den er man hurtigt toast :) Jeg benytter mig ligeledes af views og hiver dem ind sammen med tabellerne, det fungerer upåklageligt, for som du siger... nogle gange er man tvunget til selv at skrive joins.

Jeg tror også når man har baggrund i databaser at man ser anderledes på ORM*, mange udviklere kunne før i tiden forlade sig på at der sad nogle db-udviklere og skrev sprocs, de folk er lidt ude af billedet nu, og udviklerne sidder selv med noget der bliver til Sql, måske uden at vide særligt meget om resultatet er optimalt eller ej.
Synes dog at Linq to Sql oftest rammer lige i plet. Det sjove er at Sql'en ikke lige ligner noget man selv ville ha skrevet sådan, men i bund og grund er det stort set identiske IO's

*) der findes jo også dba/ dbdev -'ere som totalt fordømmer denne ORM-teknologi og konstant argumentere for at det eneste der virker er sprocs. Det forekommer mig nu en smule snævertsynet :) Jeg har faktisk selv været sådan en hehe...
Avatar billede Syska Mester
24. maj 2010 - 03:38 #7
Ja, Views og ORM's er en god ting :-)

Men vi er endnu engang enige.
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