【问题标题】:Find data in database在数据库中查找数据
【发布时间】:2013-12-04 03:27:01
【问题描述】:

我知道应该做什么,只是不完全确定如何将它们组合在一起。我正在尝试使用文本框在我的数据中搜索记录。我想如果用户不知道整个地址只是为了能够输入地址的一部分并仍然返回记录。如果我输入完整地址,则会返回一条记录。但是,如果我只输入前几个字母并搜索什么都不会返回。

谢谢

这是我所拥有的:

protected void btnFind_Click(object sender, EventArgs e)
    {
        string searchFor = txtFirstName.Text.Trim();
        int results = 0;
        string errorText = "No records found";

        OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\Contacts.mdb");
        conn.Open();

        DataSet ds = new DataSet();

        string cmd = "SELECT * FROM Contact WHERE Address LIKE '+searchFor ' ";

        OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

        da.Fill(ds, "Search");

        DataRow[] row;
        DataRow dr;

        row = ds.Tables["Search"].Select("Address='" + searchFor + "'");
        results = row.Length;

        if (results > 0)
        {
            dr = row[0];
            txtFirstName.Text = dr["FirstName"].ToString();
            txtLastName.Text = dr["LastName"].ToString();
            txtEmail.Text = dr["Email"].ToString();
            txtAddress.Text = dr["Address"].ToString();
            txtPhone.Text = dr["Phone"].ToString();

        }
        else
        {
            lblError.Text = errorText;
        }
        conn.Close();


    }

【问题讨论】:

    标签: c# database ms-access sqlcommand


    【解决方案1】:

    1.您在查询中误用了单引号。您需要用单引号将字符串变量括起来。

    2.您没有在查询中正确添加参数。你需要关闭参数
    使用串联+ 运算符

    3.您需要使用%进行搜索。
    示例:如果您想在两者之间进行搜索,可以在搜索字符串之前和之后使用 %

    这个

    string cmd = "SELECT * FROM Contact WHERE Address LIKE '+searchFor ' ";
    

    应该是

    string cmd = "SELECT * FROM Contact WHERE Address LIKE '%"+ searchFor +"%'";
    

    【讨论】:

    • 我进行了更改,但结果仍然相同。我的 else 语句触发并出现无记录消息
    【解决方案2】:

    你可以试试这个代码:

     string cmd = "SELECT * FROM Contact WHERE Address LIKE '%"+ searchFor +"%'";
    

    【讨论】:

    • 当代码看起来可以编译和工作时,我会删除反对票。
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多