簡體   English   中英

如何使用過濾器從 C# 中的訪問中選擇特定字段

[英]how to select specific field using a filter from access in C#

在 C# 和 windows 窗體中,

我有一個這樣的數據庫:

在此處輸入圖片說明

這就是我使用類將其數據放入datagridview

    class DBConnection
{
    public static void GetList(Form2 frm2)
    {
        string DBPath = Application.StartupPath;
        OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+DBPath+@"\DataBase\SampleFeeds.accdb");
        OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary", Connection);
        DataTable Dtable = new DataTable();
        DataA.Fill(Dtable);
        frm2.SelectedFeeddataGridView.DataSource = Dtable;
    }

}

這是我的表單加載:

private void Form2_Load(object sender, EventArgs e)
    {
        DBConnection.GetList(this);
    }

到目前為止一切正常。

現在我有一個問題:

例如,我有一個列表框FeedSelectListBox ,我想當用戶單擊按鈕GrassLegumeForagebtn我的FeedSelectListBox ,只填充屬於 Grass / Legume Forage 類別的所有 Feed Names。

我該怎么做?

在 Damirchi 的幫助下我的問題解決了

//--

但現在我有另一個問題:當用戶從列表框中選擇一個提要時,我想將數據庫中的所有數據(如名稱、編號、提要類型和 ,,,)放入數據網格視圖中。

我在SelectFeedbtn上使用了此代碼,但它不起作用:

private void SelectFeedbtn_Click(object sender, EventArgs e)
    {
        string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString;
        OleDbConnection Connection = new OleDbConnection(StrCon);
        string FeedSelectedID = FeedSelectListBox.SelectedValue.ToString();
        OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = 'FeedSelectedID'" , Connection);
        DataTable DTable = new DataTable();
        DataA.Fill(DTable);
        SelectedFeeddataGridView.DataSource = DTable;
    }

FeedSelectListBox ValueMember屬性是 ID 但錯誤是:

System.Data.dll 中發生類型為“System.Data.OleDb.OleDbException”的未處理異常。

我什至使用這個查詢,但它仍然不起作用:

OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID =" FeedSelectListBox.SelectedValue , Connection);

首先,您最多設置FeedSelectListBoxDisplayMemberValueMember屬性,並在單擊事件上使用此代碼。 您可以將此代碼放在GrassLegumeForagebtn單擊事件上。

string DBPath = Application.StartupPath;
        OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+DBPath+@"\DataBase\SampleFeeds.accdb");
        OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where category='Grass / Legume'", Connection);
        DataTable Dtable = new DataTable();
        DataA.Fill(Dtable);
        frm2.FeedSelectListBox .DataSource = Dtable;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM