SQL Server 2012 - ASP.NET - VB.NET - Einfügen von Daten in die Datenbank
Ich versuche, fügen Sie Daten zu einer db-Tabelle mithilfe von SQL-Anweisung mit VB.NET.
Dies ist mein code:
Registrierung.aspx:
Imports dbConnect
Imports System.Data.SqlClient
Partial Class Registration
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
End Sub
Protected Sub btnRegister_Click(sender As Object, e As EventArgs) Handles btnRegister.Click
register()
End Sub
Public Sub register()
Dim Username As String = txtUsername.ToString
Dim Surname As String = txtSurname.ToString
Dim Password As String = txtPassword.ToString
Dim Name As String = txtName.ToString
Dim Address1 As String = txtAddress1.ToString
Dim Address2 As String = txtAddress2.ToString
Dim City As String = txtCity.ToString
Dim Email As String = txtEmail.ToString
Dim Country As String = drpCountry.ToString
Dim DOB As Date = calDOB.SelectedDate
Dim Occupation As String = txtOccupation.ToString
Dim WorkLocation As String = txtWorkLocation.ToString
Dim Age As Integer = "20"
Dim ProjectManager As String = "test"
Dim TeamLeader As String = "test"
Dim TeamLeaderID As Integer = 1
Dim ProjectManagerID As Integer = 1
Dim RegistrationDate As Date = Today
Dim ContractType As String = "test"
Dim ContractDuration As Integer = 6
Dim Department As String = "test"
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim registerSQL As SqlCommand
Dim sqlComm As String
sqlComm = "INSERT INTO users(Username, Password, Name, Surname, Address1, Address2, City, Country, date_of_birth, age, Occupation, department, work_location, project_manager,team_leader, team_leader_id, project_manager_id, date_registration, contract_type, contract_duration) VALUES('" + Username + "','" + Password + "','" + Name + "','" + Surname + "','" + Address1 + "','" + Address2 + "','" + City + "','" + Country + "','" + DOB + "','" + Age + "','" + Occupation + "','" + Department + "','" + WorkLocation + "','" + ProjectManager + "','" + TeamLeader + "','" + TeamLeaderID + "','" + ProjectManager + "','" + RegistrationDate + "','" + ContractType + "','" + ContractDuration + "')"
conn.Open()
registerSQL = New SqlCommand(sqlComm, conn)
registerSQL.ExecuteNonQuery()
conn.Close()
End Sub
End Class
Dies ist meine Datenbank-Tabelle 'users':
Bin ich immer diese Fehlermeldung:
Error 1 Operator '+' is not defined for types 'Double' and 'Date'. C:\Users\Brian\Documents\Visual Studio 2012\WebSites\WebSite1\Registration.aspx.vb 51 19 WebSite1(1)
Kann mir jemand sagen, was Los ist ?
- Verwendung von parametrisierten Abfragen und NIE bauen Sie Ihre query-string so, zur info - stackoverflow.com/questions/542510/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Lloyd wies darauf hin, Parametrisierung der Abfragen. E. g. (gekürzt für bessere Lesbarkeit)
Aber um Ihre Frage zu beantworten, verwenden Sie
&
statt+
zu verketten einer Zeichenfolge.Nur, um Ihnen einen Ausgangspunkt
Und wenn der Wert übergeben an die Methode AddWithValue ist kein string, versuchen, zu konvertieren, um den richtigen Datentyp zu erwarten, die durch das Datenbank-Feld.
In dieser Weise müssen Sie nicht sorgen zu machen über Parsen von strings mit doppelten Anführungszeichen oder automatische Konvertierung von Zeichenfolgen in Datum, außerdem, Sie haben keine Probleme mit der Sql-Injection-Angriffe