У меня возникла проблема после переноса моей базы данных mdb в accdb с помощью MS access
При попытке использовать мой VB.Net-приложения для подключения в accdb файл, который был изначально конвертирован из MDB с помощью MS доступ это приложение, однако, дал мне нераспознанный формат базы данных при движении задним ходом действий и использовать исходный файл MDB он работает нормально также перенесенные accdb это работает нормально в MS доступа
Что я уже пробовал:
Private Sub FillCustDataGrid() Try Dim sqlQRY As String sqlQRY = "Select * From Customers WHERE DateAdded >= #" + Today + "#" Dim da As OleDbDataAdapter Dim ds As DataSet = New DataSet da = New OleDbDataAdapter(sqlQRY, cnnOLEDB) Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(da) da.Fill(ds, "Customers") DataGridViewCustomer.DataSource = ds DataGridViewCustomer.DataMember = "Customers" lbl_RowCount.Text = DataGridViewCustomer.RowCount Dim row As Integer If DataGridViewCustomer.RowCount > 0 Then row = DataGridViewCustomer.FirstDisplayedCell.RowIndex DataGridViewCustomer.Rows(row).Selected = True DataGridViewCustomer.Sort(DataGridViewCustomer.Columns(6), ListSortDirection.Ascending) If RowIndex_Cust_TXT.Text = vbNullString Then Exit Sub Else Me.DataGridViewCustomer.ClearSelection() Me.DataGridViewCustomer.Rows(RowIndex_Cust_TXT.Text).Selected = True Me.DataGridViewCustomer.FirstDisplayedScrollingRowIndex = RowIndex_Cust_TXT.Text End If Else row = 0 End If Catch ex As OleDbException MessageBox.Show(ex.Message) End Try End Sub
Richard Deeming
sqlQRY = "Select * From Customers WHERE DateAdded >= #" + Today + "#"
Не делай этого так!
В данный конкретный случай, так как параметр является датой, вы вероятно это сойдет тебе с рук. Но использование конкатенации строк для построения запросов к базе данных может привести и приведет к SQL-инъекция[^] факторы уязвимости.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Const sqlQRY As String = "Select * From Customers WHERE DateAdded >= ?" Dim da As New OleDbDataAdapter(sqlQRY, cnnOLEDB) da.SelectCommand.Parameters.AddWithValue("@p0", Today)