簡體   English   中英

c# search ms access db by ID

[英]c# search ms access db by ID

private void Filtriraj()
    {
        string filter = string.Empty;
        if (txtID.Text.Length > 0)
        {
            filter = "ID LIKE '%" + txtID.Text + "%'";
        }
        if (txtName.Text.Length > 0)
        {
            filter = "Name LIKE '%" + txtName.Text + "%'";
        }
    }

我想通過我的 c# 應用程序中的 ms 訪問數據庫表進行搜索。 上面的一個連接到“Table1”,它有一些字段,如 ID、姓名、姓氏、地址...ID 類型設置為自動編號,所有其他都是文本。 我可以搜索除 ID 之外的所有字段,這種方式無法正常工作,當我嘗試按 ID 搜索時出現異常(我在 txtbox 中輸入數據庫中的一些 ID 號,例如:'1')按 txtName 搜索工作正常。

自動編號是某種形式的數字(我認為很長),因此您不能使用 LIKE 關鍵字。 您必須搜索完全匹配(或大於、小於等)。 您也不能用單引號將數字括起來,因此需要將其刪除。

我會將您的代碼切換為以下內容:

.
.
.
if (txtID.Text.Length > 0)
{
    int id;
    if (Int32.TryParse(txtID.Text, out id))
    {
        filter = "ID = " + id.ToString();
    }
}
.
.
.

此外,如果您有多個填充數據的文本框(因為您沒有使用 else if),您的代碼看起來可能無法正常工作。 您最后檢查的任何文本框最終都會成為使用的過濾器,因為您每次都重新分配過濾器變量。 而且,如果您直接從文本框中使用過濾器文本,那么您將自己打開可能的SQL Injection 您可能應該考慮使用參數化查詢

暫無
暫無

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

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