05. september 2006 - 11:33
Der er
18 kommentarer og 1 løsning
Problemer med parameter
Hej Arne V, for det første vil jeg lige sige rigtig god artikel! Jeg er ved at lave en asp.Net application, men skriver alt koden i cs klassen da jeg er mere fortrolig med c#: Jeg har skrevet sådan her: DateTime dt = System.DateTime.Today; SqlDataSource7.InsertCommand = "INSERT INTO RessourceReg (BogDato, OrdreNr, InternTekst, KundeNavn, TimeType, TimeAntal, RessourceType, RessourceAntal, MedarbejderId, Dato, OrdreGruppe) VALUES (@BogDato, @OrdreNr, @InternTekst, @KundeNavn, @TimeType, @TimeAntal, @RessourceType, @RessourceAntal, @MedarbejderId, @Dato, @OrdreGruppe)"; SqlDataSource7.InsertParameters.Add("BogDato", TypeCode.DateTime, dt.ToString()); SqlDataSource7.InsertParameters.Add("OrdreNr", TypeCode.String, TextBox2.Text); SqlDataSource7.InsertParameters.Add("InternTekst", TypeCode.String, GridView1.Rows[0].Cells[3].Text); SqlDataSource7.InsertParameters.Add("KundeNavn", TypeCode.String, GridView1.Rows[0].Cells[2].Text); SqlDataSource7.InsertParameters.Add("TimeType", TypeCode.String, DropDownList1.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("TimeAntal", TypeCode.Double, TextBox3.Text); SqlDataSource7.InsertParameters.Add("RessourceType", TypeCode.String, DropDownList2.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("RessourceAntal", TypeCode.Double, TextBox4.Text); SqlDataSource7.InsertParameters.Add("MedarbejderId", TypeCode.String, TextBox1.Text); SqlDataSource7.InsertParameters.Add("Dato", TypeCode.DateTime, Calendar1.SelectedDate.ToString()); SqlDataSource7.InsertParameters.Add("OrdreGruppe", TypeCode.String, GridView1.Rows[0].Cells[1].Text); SqlDataSource7.Insert(); og får fejlen: ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the variable '@BogDato'.
Annonceindlæg fra Computerworld it-jobbank
05. september 2006 - 11:42
#1
Hmm srry troede spørgsmålet blev oprettet til arne v når det er oprettet til en artikel, men hej til alle i andre, og artiklen som jeg taler om er her
http://www.eksperten.dk/artikler/831
05. september 2006 - 13:21
#2
Det ser ud til at du mangler et @ når du tilføjer dine parameters. Altså SqlDataSource7.InsertParameters.Add("@BogDato", TypeCode.DateTime, dt.ToString()); ellers ved den ikke hvilken parameter der er tale om.
05. september 2006 - 13:21
#3
Det samme skal du gøre for de andre.
05. september 2006 - 13:27
#4
Jeg går udfra du mener sådan her: SqlDataSource7.InsertCommand = "INSERT INTO RessourceReg (BogDato, OrdreNr, InternTekst, KundeNavn, TimeType, TimeAntal, RessourceType, RessourceAntal, MedarbejderId, Dato, OrdreGruppe) VALUES (@BogDato, @OrdreNr, @InternTekst, @KundeNavn, @TimeType, @TimeAntal, @RessourceType, @RessourceAntal, @MedarbejderId, @Dato, @OrdreGruppe)"; SqlDataSource7.InsertParameters.Add("@BogDato", TypeCode.DateTime, dt.ToString()); SqlDataSource7.InsertParameters.Add("@OrdreNr", TypeCode.String, TextBox2.Text); SqlDataSource7.InsertParameters.Add("@InternTekst", TypeCode.String, GridView1.Rows[0].Cells[3].Text); SqlDataSource7.InsertParameters.Add("@KundeNavn", TypeCode.String, GridView1.Rows[0].Cells[2].Text); SqlDataSource7.InsertParameters.Add("@TimeType", TypeCode.String, DropDownList1.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("@TimeAntal", TypeCode.Double, TextBox3.Text); SqlDataSource7.InsertParameters.Add("@RessourceType", TypeCode.String, DropDownList2.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("@RessourceAntal", TypeCode.Double, TextBox4.Text); SqlDataSource7.InsertParameters.Add("@MedarbejderId", TypeCode.String, TextBox1.Text); SqlDataSource7.InsertParameters.Add("@Dato", TypeCode.DateTime, Calendar1.SelectedDate.ToString()); SqlDataSource7.InsertParameters.Add("@OrdreGruppe", TypeCode.String, GridView1.Rows[0].Cells[1].Text); SqlDataSource7.Insert(); Men jeg får stadig fejlen: ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the variable '@BogDato'.
05. september 2006 - 14:16
#5
ok, det var en være gang sluder jeg fik sagt der. SqlDataSource7.InsertCommand = "INSERT INTO RessourceReg (BogDato, OrdreNr, InternTekst, KundeNavn, TimeType, TimeAntal, RessourceType, RessourceAntal, MedarbejderId, Dato, OrdreGruppe) VALUES (?BogDato, ?OrdreNr, ?InternTekst, ?KundeNavn, ?TimeType, ?TimeAntal, ?RessourceType, ?RessourceAntal, ?MedarbejderId, ?Dato, ?OrdreGruppe)"; SqlDataSource7.InsertParameters.Add("?BogDato", TypeCode.DateTime, dt.ToString()); SqlDataSource7.InsertParameters.Add("?OrdreNr", TypeCode.String, TextBox2.Text); SqlDataSource7.InsertParameters.Add("?InternTekst", TypeCode.String, GridView1.Rows[0].Cells[3].Text); SqlDataSource7.InsertParameters.Add("?KundeNavn", TypeCode.String, GridView1.Rows[0].Cells[2].Text); SqlDataSource7.InsertParameters.Add("?TimeType", TypeCode.String, DropDownList1.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("?TimeAntal", TypeCode.Double, TextBox3.Text); SqlDataSource7.InsertParameters.Add("?RessourceType", TypeCode.String, DropDownList2.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("?RessourceAntal", TypeCode.Double, TextBox4.Text); SqlDataSource7.InsertParameters.Add("?MedarbejderId", TypeCode.String, TextBox1.Text); SqlDataSource7.InsertParameters.Add("?Dato", TypeCode.DateTime, Calendar1.SelectedDate.ToString()); SqlDataSource7.InsertParameters.Add("?OrdreGruppe", TypeCode.String, GridView1.Rows[0].Cells[1].Text); Det her burde virke, eller i det mindste smide en anden fejl :-) SqlDataSource7.Insert();
05. september 2006 - 14:55
#6
Ja det smider denne fejl ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the variable '@P1BogDato'
05. september 2006 - 15:13
#7
ok jeg tror at jeg har en dårlig dag :-) jeg har gjort følgende string sqlString = "insert into userlog (logdate, userdata) values (@logdate,@userdata)"; sqlCommand = new SqlCommand(sqlString, sqlTransaction.Connection, sqlTransaction); SqlParameter sqlParameter = new SqlParameter("@logdate", DateTime.Now.ToString()); sqlParameter.SqlDbType = SqlDbType.VarChar; sqlParameter.Size = 50; sqlCommand.Parameters.Add(sqlParameter);
05. september 2006 - 15:13
#8
så det er altså @ der skal bruges
05. september 2006 - 15:20
#9
ja men det burde også kunne gøres med en datasource
05. september 2006 - 15:26
#10
ja, hvornår kommer fejlen under compilering eller når den køre
06. september 2006 - 08:25
#11
Fejlen kommer når jeg kører programmet når den når til linjen: sqlDatasource7.insert();
06. september 2006 - 08:59
#12
kan du ikke poste kode for hele metoden.
06. september 2006 - 09:48
#13
Det her virker hos mig SqlDataSource7.InsertCommand = "INSERT INTO test (hej) VALUES (@hej)"; SqlDataSource7.InsertParameters.Add("hej", TypeCode.Int32, "3"); SqlDataSource7.Insert();
06. september 2006 - 10:12
#14
DateTime dt = System.DateTime.Today; SqlDataSource7.InsertParameters.Clear(); SqlDataSource7.InsertCommand = "INSERT INTO RessourceReg (BogDato, OrdreNr, InternTekst, KundeNavn, TimeType, TimeAntal, RessourceType, RessourceAntal, MedarbejderId, Dato, OrdreGruppe) VALUES (@BogDato, @OrdreNr, @InternTekst, @KundeNavn, @TimeType, @TimeAntal, @RessourceType, @RessourceAntal, @MedarbejderId, @Dato, @OrdreGruppe)"; SqlDataSource7.InsertParameters.Add("BogDato", TypeCode.DateTime, dt.ToString()); SqlDataSource7.InsertParameters.Add("OrdreNr", TypeCode.String, TextBox2.Text); SqlDataSource7.InsertParameters.Add("InternTekst", TypeCode.String, GridView1.Rows[0].Cells[3].Text); SqlDataSource7.InsertParameters.Add("KundeNavn", TypeCode.String, GridView1.Rows[0].Cells[2].Text); SqlDataSource7.InsertParameters.Add("TimeType", TypeCode.String, DropDownList1.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("TimeAntal", TypeCode.Double, TextBox3.Text); SqlDataSource7.InsertParameters.Add("RessourceType", TypeCode.String, DropDownList2.SelectedValue.ToString()); SqlDataSource7.InsertParameters.Add("RessourceAntal", TypeCode.Double, TextBox5.Text); SqlDataSource7.InsertParameters.Add("MedarbejderId", TypeCode.String, TextBox1.Text); SqlDataSource7.InsertParameters.Add("Dato", TypeCode.DateTime, Calendar1.SelectedDate.ToString()); SqlDataSource7.InsertParameters.Add("OrdreGruppe", TypeCode.String, GridView1.Rows[0].Cells[1].Text); SqlDataSource7.Insert();
06. september 2006 - 10:19
#15
Når du opsætter din datasource connecter du så til den med odbc, eller peger din fatasource bare på en fil, jeg bruger odbc kan det have nogen betydning ?
06. september 2006 - 11:28
#16
jeg er connected til mssql, hvilken DB bruger du?
06. september 2006 - 11:57
#17
jeg bruger odbc datasource som forbinder til en ms sql database på en server
06. september 2006 - 12:51
#18
Har fået det til at virke ved ikke at bruge odbc så smid et svar ofg du får dine point
06. september 2006 - 13:30
#19
svar
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.