2016-04-21 1 views
-3
Dim cmd As New OleDb.OleDbCommand 
    If Not cnn.State = ConnectionState.Open Then 
     'open connection if it is not yet open 
     cnn.Open() 
    End If 

    cmd.Connection = cnn 
    'check whether add new or update 
    If Me.txtcheckID.Tag & "" = "" Then 
     'add new 
     'add data to table 
     cmd.CommandText = "INSERT INTO student(checkid, branch, amount, type, status, date, address) " & _ 
         " VALUES(" & Me.txtcheckID.Text & ",'" & Me.txtBranch.Text & "','" & _ 
         Me.cboType.Text & "','" & Me.txtStatus.Text & "','" & _ 
         Me.txtAddress.Text & "','" & Me.txtDate.Text & "','" & Me.txtAmount.Text & "')" 
     cmd.ExecuteNonQuery() 
    Else 
     'update data in table 
     cmd.CommandText = "UPDATE student " & _ 
        " SET checkid=" & Me.txtcheckID.Text & _ 
        ", branch='" & Me.txtBranch.Text & "'" & _ 
        ", type='" & Me.cboType.Text & "'" & _ 
        ", status='" & Me.txtStatus.Text & "'" & _ 
        ", address='" & Me.txtAddress.Text & "'" & _ 
        ", amount='" & Me.txtAmount.Text & "'" & _ 
        ", date='" & Me.txtDate.Text & "'" & _ 
        " WHERE checkid=" & Me.txtcheckID.Tag 
     cmd.ExecuteNonQuery() 
    End If 
    'refresh data in list 
    RefreshData() 
    'clear form 
    Me.btnClear.PerformClick() 

    'close connection 
    cnn.Close() 
+0

Использовать параметризованные запросы. Вставка ввода непосредственно в запрос открывает вас до SQL-инъекций и таинственных ошибок. https://social.msdn.microsoft.com/Forums/vstudio/en-US/6bdf8b71-1cf1-41c0-848c-4fca2c9e1ea2/faq-how-do-i-make-a-parameterized-query-in-the- database-with-vbnet? forum = vbgeneral – Ryan

+0

Как я могу решить эту ошибку/debug? – Geloskee

+0

Начните с использования параметризованных запросов. Проблема может решить, когда вы это сделаете. Если это не так, это будет более очевидно, и я также буду рад помочь, если вы все еще не сможете его найти. – Ryan

ответ

0
cmd.CommandText = "INSERT INTO student(checkid, branch, amount, type, status, date, address) " & _ 
        " VALUES(" & Me.txtcheckID.Text & ",'" & Me.txtBranch.Text & "','" & _ 
        Me.cboType.Text & "','" & Me.txtStatus.Text & "','" & _ 
        Me.txtAddress.Text & "','" & Me.txtDate.Text & "','" & Me.txtAmount.Text & "')" 

Извините, если я глуп, но будет иметь 2 места в строке CommandText между адресом) и ЗНАЧЕНИЯ, где первый разрыв строки вызывает ошибочными? Не знаете, как VB и OleDB обрабатывают пробелы, а моя учетная запись слишком новая, чтобы комментировать ...

+1

№. Пробелы не имеют отношения к запросу (если только в литературе) ... – RobIII

+0

О, хорошо, я сделал немного быстрого поиска в Google, но не смог найти то, что сказал так или иначе, поэтому я решил, , – NetworkMonkey

Смежные вопросы