adkmar Ответов: 1

Как я могу отобразить номер конкретной ячейки в datagridview в VB.NET


у меня есть datagridview, который я фильтрую оценки студентов через текстовое поле из базы данных access.
Это работает так, когда я набираю какую-то оценку, например А, В, С или F....it отображает учащихся с этой конкретной оценкой.
То, что я хочу, - это отобразить общее количество оценок каждого ученика внутри столбца кнопки DataGridView или какого-либо другого метода отображения.

Спасибо!!!

Вот событие загрузки и событие изменения текста текстового поля, которое у меня есть deone.

Imports System.Data
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data.DataTable


Public Class Form2
    Dim provider As String
    Dim dataFile As String
    Dim connString As String
    Dim myConnection As OleDbConnection = New OleDbConnection
    Dim ds As DataSet = New DataSet
    Dim da As OleDbDataAdapter
    Dim tables As DataTableCollection = ds.Tables
    Dim source1 As New BindingSource()


    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
        ' dataFile = "|DataDirectory|\LMS_DB.accdb"
        dataFile = "C:\Studentsgrade.accdb" ' change to access database location on your computer
        connString = provider & dataFile
        myConnection.ConnectionString = connString
        da = New OleDbDataAdapter("Select [Student Name], [ID No], [Group], [C1], [C2], [C3], [C4], [C5], [C6], [C7], [C8], [C9], [C10], [C11], [C12], [C14], [C15], [C3], [C1], [C2], [C3], [C1], [C2], [C3], [C1], [C2], [C3], [C1], [C2], [C3] from Studentsgrade", myConnection)
        da.Fill(ds, "Studentsgrade")
        ' replace "items" with the name of the table
        ' replace [Item Code], [Description], [Price] with the columns headers
        Dim view1 As New DataView(tables(0))
        source1.DataSource = view1
        DataGridView1.DataSource = view1
        DataGridView1.Refresh()

    End Sub
    
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
       
        source1.Filter = String.Format("[Student Name] LIKE '%{0}%' OR [ID No] LIKE '%{0}%' OR [Group] LIKE '%{0}%' OR [C1] LIKE '%{0}%' OR [C2] LIKE '%{0}%'", TextBox1.Text)
        
        DataGridView1.Refresh()
End Sub


Что я уже пробовал:

я попробовал код для события загрузки и события изменения текста текстового поля.

Maciej Los

Что вы пробовали?

adkmar

Я обновил свой вопрос выше.
Спасибо!!

Karthik_Mahalingam

получите счетчик из источника данных и привяжите его к одному дополнительному столбцу или к метке вне girdivew, так как счетчик один и тот же, его будет странно отображать в виде столбца

Member 14574945

Импортирует System.Data.Для oledb


Публичный Класс Form2
Дим поставщика как строку
Dim файл данных в виде строки
Dim connstring как строка
Dim myconnection As OleDbConnection = New OleDbConnection
Private Sub Form2_Load(ByVal sender As System.Объект, бывал е как система.EventArgs) Обрабатывает MyBase. Load
поставщик = "поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных="
файл данных = "E:\database\new.accdb"
connstring = поставщик & amp; файл данных
myconnection.ConnectionString = connstring
myconnection.Открыть()


Конец Подводной Лодки
Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
Тусклый str как струна
str = " вставить в таблицу 1([Имя пользователя],[пароль]) значения (?,?)"
Дим объект oledbcommand cmd в качестве стр = новый объект oledbcommand (, myconnection)
УМК.Параметры.Добавить(Новый Класса Oledbparameter("Имя Пользователя", Ctype Для(Текстовое Поле Textbox1.Текст, Строку)))
УМК.Параметры.Добавить(Новый Класса Oledbparameter("Пароль", Ctype Для(Поле Textbox2.Текст, Строку)))



Мой.Параметры.Имя Пользователя = TextBox1. Text
Мой.Параметры.пароль = поле textbox2.Текст
Мой.Параметры.Сохранить()
MsgBox ("создать учетную запись !", MsgBoxStyle.Информация, " создать")
Меня.Скрыть()
Форма 1. Показать()
Конец Подводной Лодки

Private Sub Button2_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button2. Click
Меня.Скрыть()
Форма 1. Показать()
Конец Подводной Лодки


Конец Класса


мои данные не отображаются в таблице ms access после предоставления запроса подключения и вставки

1 Ответов

Рейтинг:
0

Maciej Los

Есть 2 возможных способа добиться этого:


  1. через базу данных фильтров
    Вам нужно создать Объект oledbcommand[^] с запросами:
    SELECT <<list_of_columns>>
    FROM Studentsgrade
    WHERE [Student Name] LIKE @name OR [ID No] LIKE @id OR [Group] LIKE @grp OR [C1] LIKE @c1 OR [C2] LIKE @c2

    и передайте количество аргументов, которые вы определяете в where предложение Объект oledbcommand.Параметры[^] коллекция.
    Чтобы иметь возможность загрузка данных в DataTable[^] вы должны использовать OleDbReader[^] через Объект oledbcommand.Метод ExecuteReader() [^].
  2. с помощью набора фильтров
    Для базы данных MS Access некоторые программисты предпочитают фильтр datatable с помощью его метода[^] а некоторые предпочитают использовать Linq to dataset[^].



Для получения более подробной информации, пожалуйста, прочтите:
OleDbParameterCollection.Метод AddWithValue (String, Object) (System.Data.Для oledb)[^]
Введение в LINQ в Visual Basic[^]
Примеры LINQ to DataSet[^]
Создание DataTable из запроса (LINQ to DataSet)[^]
Запросы в LINQ to DataSet[^]


adkmar

я уже понял, как фильтровать мои данные, которые не являются тем, что я ищу, пожалуйста, прочитайте мой вопрос еще раз.То, что я хочу, - это отобразить общее количество оценок каждого ученика внутри столбца кнопки DataGridView или какого-либо другого метода отображения.

Maciej Los

Ну, я бы хотел вам помочь, но вы не предоставили информацию об алгоритме, используемом для получения 'общее количество классов каждого ученика'.