[英]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);
首先,您最多設置FeedSelectListBox
的DisplayMember
和ValueMember
屬性,並在單擊事件上使用此代碼。 您可以將此代碼放在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.