У меня была проблема с доступом к базе данных. Я не мог подключиться к моей базе данных SQL. ОшибкаОшибка SqlDataBase. Вставить заявление не работает
Ошибка синтаксиса в инструкции INSERT INTO заявления
Я пробовал все, но я просто нужна помощь. Вот мой код:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
SqlDataSource1.InsertCommand = "INSERT INTO Information Page (RName, RCountry) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "')"
Label4.Text = DateTime.Now.ToString("dd MMMM yyyy h:mm")
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
TextBox1.Text = " "
TextBox2.Text = " "
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
name = TextBox1.Text
country = TextBox2.Text
SqlDataSource1.Insert()
Response.Redirect("http://localhost:49179/WebForm1.aspx")
End Sub
Вы не указали, какую версию SQL вы используете, однако ваш текущий запрос недействителен, поскольку в имени вашей таблицы есть пробел. Если вы используете MySQL, вам нужно использовать обратные тики: '\' Information Page \ '' или если вы используете сервер Microsoft SQL, вам нужно использовать квадратные скобки '[Information Page]' – Jaco
. Какое точное имя таблицы вы хотите вставить? Имя (одна строка, возможно, в окружении ') должно быть единственной вещью между именами INTO и именами в скобках. – BryanT
Как T.S. и вы молоды, читайте о ПАРАМЕТРИРОВАННЫХ операторах SQL. Строя строки, вы WIDE-OPEN для sql-инъекции. Параметрированные запросы в основном представляют собой значения владельца места в sql-statement, тогда вы можете добавить SqlDataSource1.InsertCommand.Parameters.Add(), чтобы заполнить нужное значение в соответствующем месте-заполнителе. Читайте об этом, и вы увидите PLENTY примеров для работы. Удачи вам в обучении. – DRapp