Jag är riktigt ny i asp.net så behöver en liten spark i rumpen. Skulle nån bara kunna hjälpa mig med en syntax. Jag ska alltså, hur enkelt som helst, hämta info från ett formulär och skriva in i en tabell som heter tblRegisteredUsers. Fälten som hämtas heter: INSERT INTO Useraccounts(strUsername,strPassword,strEmail,strIP,datRegDate) OBS! Det är viktigt att kontrollera all input data från formuläret fårn tecken som kan bryta ett SQL-uttrycket som byggs upp i en sträng. Okej, kanon, tackar.. ytterligare en fråga dock, hur skickar man detta till databasen sedan? Förut var den ju typ Conn.EXECUTE(sql).. hur gör man i asp.net? <code> Okej, är jag helt ute och cyklar om jag skriver så här? Ja... Jag skriver så härSkriva i databas, insert osv..
tbUsername
tbEmail
tbPassword
och sedan ska ip:et hos användaren registreras och även det registrerade datumet.
Boken jag läser förklarar inte detta på något bra sätt, hur man infogar data i en databas, så vore skysst om nån kunde visa. Jag har skrivit detta hittils:
dim Conn as new OleDbConnection("Provider=" & _
"Microsoft.Jet.OLEDB.4.0;" & _
"Data Source="Useraccounts.mdb")
INSERT INTO Useraccounts(strUsername,strPassword,strEmail,strIP,datRegDate)
VALUES(tbUsername.Text,tbEmail.text,tbPassword.text,IP,Datum)
Visste inte hur jag skulle få fram userns IP och dagens datum så jag skrev bara så i Values raden.
Vore oerhört tacksam för hjälp!!
Blir tokig, för det var ju så lätt i vanliga ASP...Sv: Skriva i databas, insert osv..
VALUES('"+ tbUsername.Text +"','" + tbEmail.text + "','" + tbPassword.text + "','" + Request.ServerVariables["REMOTE_ADDR"] + "','" + DateTime.Now.ToShortDateString()+ "')
Om det är vb.net byt ut '+' med '&'.
Annars kan du göra skicka värdena som parametrar,
typ;
cmd.Parameters.Add("@Uname", tbUsername.Text);
då skulle satsen se ut så här;
VALUES(@Uname, osv, osv)Sv: Skriva i databas, insert osv..
Så se till att göra en Replace på ' till två ' på alla värden som kommer från det användaren matar in i ett fomulär och som ska användas i skapadnet av ett SQL-uttryck.
Genom att använda parametrar så behöver Ni inte tänka på att byta ut tecken som kan bryta ett SQL-uttryck. ADO.Net byter ut dom åt er.
/Fredrik NorménSv: Skriva i databas, insert osv..
Sv: Skriva i databas, insert osv..
Dim myCommand As New OleDbCommand(sql, myConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
</code>
/Fredrik NorménSv: Skriva i databas, insert osv..
Sub DoRegister(obj as Object, e as Eventargs)
If Page.IsValid Then
dim myConnection as new OleDbConnection("Provider=" & _
"Microsoft.Jet.OLEDB.4.0;" & _
"Data Source="Useraccounts.mdb")
sql= "INSERT INTO Useraccounts(strUsername,strPassword,strEmail,strIP,datRegDate)"
sql= sql & "VALUES(tbUsername.Text,tbEmail.text,tbPassword.text)"
Dim myCommand As New OleDbCommand(sql, myConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
Else
lblRegMess.Text = "The user could not be added! Fill in the form correctly!"
End If
End SubSv: Skriva i databas, insert osv..
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
Sen måste antalet värden matcha antalet fält som du ska skicka till.
Ex;
Useraccounts(fält1) VALUES(värde_till_fält1)Sv: Skriva i databas, insert osv..
dim myConnection as new OleDbConnection("Provider=" & _
"Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=Useraccounts.mdb")
Dim objParameters as OleDbParameter
myConnection.objParameters.Add("@Username", tbUsername.Text)
myConnection.objParameters.Add("@Email", tbEmail.Text)
myConnection.objParameters.Add("@Password", tbPassword.Text)
myConnection.objParameters.Add("@IP", Request.ServerVariables["REMOTE_ADDR"])
myConnection.objParameters.Add("@datDate", DateTime.Now.ToShortDateString())
Dim sql as String
sql= "INSERT INTO Useraccounts(strUsername,strPassword,strEmail,strIP,datRegDate)"
sql= sql & "VALUES(@Username,@Email,@Password,@IP,@datDate)"
Dim myCommand As New OleDbCommand(sql, myConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
------
men får felmeddelandet att
BC30456: 'objParameters' is not a member of 'System.Data.OleDb.OleDbConnection'.
Vad menar dom då? pekar på första add parameter raden.