Заполните DataGridView данными из SQL - PullRequest
0 голосов
/ 14 августа 2011

Я хочу заполнить DataGridView данными, возвращаемыми из SQL. Итак, вот мой код [Я предоставил, потому что некоторые люди могут подумать, что я прошу помощи, прежде чем попробовать себя]

Я хочу, чтобы DataGridView был заполнен данными из SQL, чтобы не отображались все записи.

SQL "Выбрать * из книг, где title = 'php%' Order By Title;"

бесполезный код :(: '(: <</h1> Imports System.Data Imports System.Data.SqlClient Public Class frmMain Dim connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.mdb;Persist" & " Security Info=True" Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.BooksTableAdapter.Fill(Me.TblBooks.books) End Sub Private Sub txtTerm_TextChanged() Handles txtTerm.TextChanged If Trim(txtTerm.Text) = "" Then Exit Sub Dim tblCustomBooks As New DataTable Dim adpBooks As New OleDb.OleDbDataAdapter("Select * From books where title='php%' Order By Title", _ '"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.mdb;Persist" & " Security Info=True") adpBooks.Fill(tblCustomBooks) BooksTableAdapter.Fill(tblCustomBooks) 'Dim myConnection As SqlConnection 'Dim myCommand As SqlDataAdapter 'myConnection = New SqlConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.mdb;Persist" & " Security Info=True") 'myCommand = New SqlDataAdapter("Select * From books where title='php%' Order By Title", myConnection) 'Dim ds As DataSet = New DataSet() 'myCommand.Fill(ds) 'gridTable.DataSource = ds End Sub

Ответы [ 3 ]

2 голосов
/ 15 августа 2011

В своем выражении SQL попробуйте [WHERE Title LIKE 'php%'] вместо [WHERE Title = 'php%'].

Я столкнулся с похожими проблемами с MS SQL, и это было исправлением. Я не уверен, что синтаксис SQL одинаков для провайдера Jet, но стоит попробовать хотя бы.

НТН

2 голосов
/ 15 августа 2011

Похоже, вы пробовали несколько разных вещей, но из вашего кода не ясно, в каком порядке вы их пробовали. Исходя из текущей версии вашего кода, вам не хватает двух вещей:

Во-первых, объект OleDBConnection для использования с OleDbDataAdapter.

Во-вторых, вы ничего не назначаете свойству DataGridView s DataSource, поэтому ничего не появится.

Кроме того, выкажется, что используются два разных OleDbDataAdapters (или, может быть, два разных DataAdapter в целом) для заполнения tblCustomBooks, поэтому в зависимости от того, что настроено BooksTableAdapter, это также может вызвать проблемы.

Попробуйте это:

Private Sub txtTerm_TextChanged() Handles txtTerm.Changed

    If Trim(txtTerm.Text) = "" Then Exit Sub

    Dim tblCustomBooks As New DataTable

    Using conn As New OleDbConnection(connectionString)
        Dim adpBooks As New OleDbDataAdapter("SELECT * FROM books WHERE title = 'php%' ORDER BY title", conn)
        adpBooks.Fill(tblCustomBooks)

        gridTable.DataSource = tblCustomBooks
    End Using
End Sub

См .:

Свойство DataGridView.DataSource

Класс OleDbDataAdapter

0 голосов
/ 23 марта 2017
dim dt as new datatable
'i already maked the class and now load from a database
dt=cls.getdata("select * from tblinf")
datagridview1.datasource=dt
...