01. april 2008 - 20:08
Der er
12 kommentarer og 1 løsning
Column 'brugernavn' cannot be null
Ledigt.CommandText = "SELECT id FROM brugere WHERE brugernavn = @brugernavn"; Ledigt.Parameters.Add("@brugernavn", OdbcType.VarChar, 32).Value = Brugernavn.Text; Hvorfor melder den fejl, når i brugernavn-feltet skriver "yez" f.eks.? Exception Details: System.Data.Odbc.OdbcException: ERROR [HYT00] [MySQL][ODBC 3.51 Driver][mysqld-5.0.45]Column 'brugernavn' cannot be null
Annonceindlæg fra Computerworld it-jobbank
01. april 2008 - 21:22
#1
proev med: Ledigt.CommandText = "SELECT id FROM brugere WHERE brugernavn = ?";
01. april 2008 - 21:24
#2
Ledigt.CommandText = "SELECT id FROM brugere WHERE brugernavn = ?"; Ledigt.Parameters.AddWithValue("@brugernavn", Brugernavn.Text); Samme fejl!!
01. april 2008 - 22:40
#3
Er du sikker på at det er i den command at din fejl opstår?
01. april 2008 - 22:53
#4
Jeps. 100% OdbcCommand Ledigt = new OdbcCommand(); Ledigt.CommandText = "SELECT id FROM brugere WHERE brugernavn = @brugernavn"; Ledigt.Parameters.AddWithValue("@brugernavn", Brugernavn.Text); Ledigt.Connection = MySQLConnector.con; ............... OdbcCommand Command = new OdbcCommand(); Command.CommandText = "INSERT INTO brugere (brugernavn,kodeord,email,fornavn,efternavn,dag,mdr,aar,region) VALUES (@navn,@kode,@email,@fornavn,@efternavn,'" + Dag.SelectedValue + "','" + Mdr.SelectedValue + "','" + Aar.SelectedValue + "','" + Region.SelectedValue + "')"; /** Ingen SQL-Injections **/ Command.Parameters.Add("@navn", OdbcType.VarChar, 32).Value = Brugernavn.Text; Command.Parameters.Add("@kode", OdbcType.VarChar, 32).Value = Kode1.Text; Command.Parameters.Add("@email",OdbcType.VarChar, 100).Value = Email.Text; Command.Parameters.Add("@fornavn", OdbcType.VarChar, 50).Value = Fornavn.Text; Command.Parameters.Add("@efternavn", OdbcType.VarChar, 50).Value = Efternavn.Text; Command.Connection = MySQLConnector.con; OdbcDataReader reader = Command.ExecuteReader();
01. april 2008 - 22:54
#5
Det lyder da snarere som om det er den sidste INSERT hvor du ogsaa skal bruge ? i selve SQL strengen.
01. april 2008 - 23:01
#6
Skal det så være VALUES (?,?,?,?,?,'"...... også ?navn, ?kode, ?email i stedet?
01. april 2008 - 23:02
#7
Du skulle kunne bruge blot "?" begge steder, blot du tilføjer parameters i samme rækkefølge som dine "?"-ere står i SQL-særningen.
01. april 2008 - 23:03
#8
Og det er vist en ting med ODBC, at det skal være sådan (ja, det kan måske gøres anderledes, hvad ved bønder om agurkesalat?)
01. april 2008 - 23:08
#9
Det virker nu, forstår ikke helt hvorfor man så kalder dem navne? F.eks Noget.Parameters.AddWithValue("?navn", Brugernavn.Text); Hvis den alligevel hedder "?" - hvorfor skal den så hedde ?navn, eller andet? Altså hvorfor skal man bruge et navn på parameteren når den alligevel ved det, ved brug af ?,?,?,? Smid svar
01. april 2008 - 23:14
#10
Fordi for ODBC er det rækkefølgen. Dit oprindelige ville virke med SqlClient til MSSQL-server. Og så ku' du li'så godt Command.Parameters.Add("?", OdbcType.VarChar, 32).Value = Brugernavn.Text; Ingen point til mig, tak.
01. april 2008 - 23:16
#11
Ahh okay.. Mystisk nok alliwl'... Svar arne.. Og tak for hjælpen erik
01. april 2008 - 23:52
#12
ODBC og OLEDB er meget specielle derved at de matcher første parameter med første ?, anden parameter med andet ? o.s.v.. Alle andre providere (som jeg kender) bruger navnene. SqlServer bruger @xxx, MySQL (altså den rigtige provider) bruger ?xxx, Oracle bruger :xxx o.s.v..
01. april 2008 - 23:52
#13
Og et svar.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.