我在 Access 2019 中創建了一個資料庫
我創建了一個基本表單來顯示上表中的資料
我想過濾資料以僅顯示某些國家/地區 - 如下所示
where 子句是硬代碼,所以我的問題是如何動態地將過濾子句從“Aus”更改為“UK”。
a) 我嘗試使用引數“CountryName”,如 Fill, GetData (CountryName) 中所示,但我無法在查詢生成器中使用該引數。如果可能的話,如何做到這一點?
b)有沒有辦法通過代碼更改填充查詢屬性(CommandText),因為我看不到要使用的正確屬性——見下文
uj5u.com熱心網友回復:
聽起來您正在創建一個型別化的DataSet. 在這種情況下,只需保留每個表配接器的默認查詢即可。然后,您可以呼叫Fill或GetData在表配接器上獲取相應表中的所有資料。如果您希望能夠過濾資料,請添加一個帶有反映過濾器的方法名稱的新查詢,例如,如果您想按CountryName列過濾,則將方法命名為FillByCountryName和GetDataByCountryName。在查詢生成器中,您必須使用?引數占位符而不是名稱@CountryName,例如
SELECT * FROM MyTable WHERE CountryName = ?
在代碼中,您將執行以下操作:
Dim countryName = "UK"
myTableAdapter.FillByCountryName(myDataSet.MyTable, countryName)
uj5u.com熱心網友回復:
你可以試試這個:
DECLARE @CountryName AS NVARCHAR(50) = 'uk'
SELECT CountryName FROM MyTable
WHERE CountryName = @CountryName
這將如何轉化為代碼:
Public Sub GetCountry()
DefaultCatalog = "MyTable"
Dim selectStatement = "SELECT CountyrName FROM MyTable WHERE CountyrName = @CountryName"
Using cn As New SqlConnection With {.ConnectionString = ConnectionString}
Using cmd As New SqlCommand With {.Connection = cn, .CommandText = selectStatement}
cmd.Parameters.AddWithValue("@CountryName", "uk")
cn.Open()
Dim reader = cmd.ExecuteReader()
If reader.HasRows Then
reader.Read()
Console.WriteLine(reader.GetString(0))
End If
End Using
End Using
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/521934.html
標籤:VB.net视觉工作室
