Вставка данных в базу данных SQL - PullRequest
0 голосов
/ 05 марта 2010

Я написал код для вставки данных TextBox в базу данных SQL. Мой код работает правильно, но когда я открываю таблицу, данные не добавляются. Вот мой код:

Private Sub save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save.Click


    Dim connetionString As String
    Dim connection As SqlConnection
    Dim adapter As New SqlDataAdapter
    Dim tabl As New DataTable
    Dim sql As String


    connetionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
    connection = New SqlConnection(connetionString)
    Try
        sql = "insert into model (no,fistname,lastname) values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "')"
        adapter.InsertCommand = New SqlCommand(sql, connection)
        connection.Open()

        adapter.InsertCommand.ExecuteNonQuery()

        MsgBox("Row inserted !! ")
        connection.Close()

    Catch ex As Exception
        MsgBox(ex.ToString)
        connection.Close()
    End Try

End Sub

Ответы [ 3 ]

9 голосов
/ 05 марта 2010

Не используйте адаптер данных. Это просто усложняет ситуацию в этом случае. Попробуйте:

Using SqlConnection connection = new SqlConnection(connectionString)

    sql = "insert into model (no, firstname, lastname)" & _ 
        " values (@val1, @val2, @val3)"

    Dim SqlCommand command = new SqlCommand(sql, connection)

    command.Parameters.Add("val1", TextBox1.Text)
    command.Parameters.Add("val2", TextBox2.Text)
    command.Parameters.Add("val3", TextBox3.Text)

    command.ExecuteNonQuery()

End Using

Таким образом, вам не нужно беспокоиться об адаптере (поскольку вы не используете GridView), и вы используете параметризованные запросы, а не динамическое построение SQL (что допускает атаки SQL-инъекции).

1 голос
/ 05 марта 2010

Как подтвердить, что данные не были вставлены?

Я подозреваю, что ваша проблема может быть связана с использованием пользовательских экземпляров SQL Express. Смотри http://msdn.microsoft.com/en-us/library/bb264564%28SQL.90%29.aspx

1 голос
/ 05 марта 2010

Я пойду отсюда на конечности & mdash; Я даже не уверен, что это за язык & mdash; и предположить, что, возможно, вам нужно явно зафиксировать транзакцию базы данных.

...