Я пытаюсь вставить некоторые данные в базу данных доступа, но с некоторым условием. Который должен ввести данные, проверив 2 Текстовые поля и только затем вставьте в базу данных доступа.Как проверить и ввести данные из «2 текстовых полей» на основе доступности данных для доступа из VB .Net
Ознакомить вас больше, пожалуйста, проверьте мой код ..
Imports System.Data.OleDb
Public Class Form1
Dim provider As String
Dim datafile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Dim str As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
datafile = "D:\Database\samplech.accdb"
connString = provider & datafile
myConnection.ConnectionString = connString
myConnection.Open()
Dim chinsrt1 As String
chinsrt1 = "Insert into bkCharacters([bkch01],[bkch02],[bkch03],[bkCh04]) Values (?,?,?,?)"
Dim chcmd1 As OleDbCommand = New OleDbCommand(chinsrt1, myConnection)
If (String.IsNullOrWhiteSpace(CH1.Text)) Then
If (String.IsNullOrWhiteSpace(CHDP1.Text)) Then
chcmd1.Parameters.Add(New OleDbParameter("bk01", CType(bkNmbr.Text, String)))
chcmd1.Parameters.Add(New OleDbParameter("bk02", CType(CH1.Text, String)))
chcmd1.Parameters.Add(New OleDbParameter("bk03", CType(CHDP1.Text, String)))
chcmd1.Parameters.Add(New OleDbParameter("bk04", CType(CHSource.Text, String)))
Else
' Insert an empty String
chcmd1.Parameters.Add(New OleDbParameter("bk01", ""))
chcmd1.Parameters.Add(New OleDbParameter("bk02", ""))
chcmd1.Parameters.Add(New OleDbParameter("bk03", ""))
chcmd1.Parameters.Add(New OleDbParameter("bk04", ""))
End If
End If
Dim chinsrt2 As String
chinsrt2 = "Insert into bkCharacters([bkch01],[bkch02],[bkch03],[bkCh04]) Values (?,?,?,?)"
Dim chcmd2 As OleDbCommand = New OleDbCommand(chinsrt2, myConnection)
If (String.IsNullOrWhiteSpace(CH2.Text)) Then
If (String.IsNullOrWhiteSpace(CHDP2.Text)) Then
chcmd2.Parameters.Add(New OleDbParameter("bk01", CType(bkNmbr.Text, String)))
chcmd2.Parameters.Add(New OleDbParameter("bk02", CType(CH2.Text, String)))
chcmd2.Parameters.Add(New OleDbParameter("bk03", CType(CHDP2.Text, String)))
chcmd2.Parameters.Add(New OleDbParameter("bk04", CType(CHSource.Text, String)))
Else
' Insert an empty String
chcmd2.Parameters.Add(New OleDbParameter("bk01", ""))
chcmd2.Parameters.Add(New OleDbParameter("bk02", ""))
chcmd2.Parameters.Add(New OleDbParameter("bk03", ""))
chcmd2.Parameters.Add(New OleDbParameter("bk04", ""))
End If
End If
Try
chcmd1.ExecuteNonQuery()
chcmd2.ExecuteNonQuery()
chcmd1.Dispose()
chcmd2.Dispose()
myConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
То, что я пытаюсь сделать здесь, чтобы проверить значения CH1.Text и CHDP1.Text и если есть какие-то данные в либо одно из этих текстовых полей, я хочу, чтобы другое поле в доступе было пустым.
Но если есть данные в обоих из них просто вставить соответственно ...
В обоих случаях я хочу также включать bkNmbr.Text и ChSource.Text.
И если нет никаких данных в обоих текстовых (CH1 и CHDP1), я просто не хочу, чтобы обновить данные на всех (не обновление записей)
Пожалуйста, помогите мне, ребята, я застрял здесь.
Thank you.
Вы ищете 'DBNull.Value' http://stackoverflow.com/questions/4722705/how-to-insert-null-into-database-if-form-field-is-empty? – BitAccesser
Нет bro ... У меня нет проблем с вводом нулевых или пустых значений в Access Database ... Моя забота заключается в том, чтобы «ввести данные» на основе условий, указанных в вопросе. – winnu
Так что не так? Ваш недостающий параметр bk03 в 'else'part, но вам нужно, чтобы он соответствовал вашим параметрам запроса. – BitAccesser