ASp.net - добавление новой строки в базу данных

Я написал этот код в Visual Basic. При выполнении ошибка не печатается, но новая строка не добавляется в базу данных. Я пытался использовать наборы данных, но это тоже не сработало. Любые идеи?

Dim conSQL As SqlConnection = New SqlConnection
    conSQL.ConnectionString = "Data Source=USER-PC\SQLEXPRESS;Initial Catalog=Phd;Integrated Security=True"
    conSQL.Open()

    Dim cmd As New SqlCommand("Insert into Phd_Student(student_id,student_name,student_email) values ('" + idnotextbox.Text + "','" + studnametextbox.Text + "','" + studemailtextbox.Text + "')" , conSQL)

  cmd.ExecuteNonQuery()
13.10.2009 08:05:24
3 ОТВЕТА
РЕШЕНИЕ

1- Вы должны открыть соединение перед выполнением команды.

try
conSQL.open()
 Dim cmd As New SqlCommand("Insert into Phd_Student(student_id,student_name,student_email) values ('" + idnotextbox.Text + "','" + studnametextbox.Text + "','" + studemailtextbox.Text + "')" , conSQL)

  cmd.ExecuteNonQuery()
Finally
conSQL.close()
end try

2 - вы должны передавать параметры в запрос не так, чтобы избежать SQL-инъекций.

0
13.10.2009 08:08:54

Есть только два возможных результата выполнения вставки; либо он добавляет запись, либо вы получаете исключение. Итак, альтернативы в вашем случае:

  1. Код, который вы показали, не выполняется вообще.
  2. Вы ловите исключение и игнорируете его.
  3. Фактический код, который у вас есть, отличается от того, что вы опубликовали.
  4. Вы создали триггер в базе данных, который удаляет запись.
  5. Одно из значений в текстовых полях использует SQL-инъекцию для удаления добавленной стоимости *.

*) Если вы введете значение -1','','');delete Phd_Student where student_id='-1'--в текстовое поле id, это добавит запись, а затем удалит ее.

1
13.10.2009 08:17:41

Прежде всего, обязательно вызовите conSQL.Close () после строки cmd.ExecuteNonQuery ().

0
13.10.2009 08:22:44