搜索时从SQL结果中删除空格

时间:2017-08-21 17:51:29

标签: c# sql datagridview

我有一个Access数据库,其中包含包含空格的字段。我尝试允许用户搜索匹配项,但结果中的空格不返回任何信息。

var dtCustomers = new DataTable();
var adapter = new OleDbDataAdapter("SELECT * FROM Devices WHERE [Serial Number]='" + textBox1.Text + "'", conn);
adapter.Fill(dtCustomers);
dataGridView1.DataSource = dtCustomers;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
    row.Cells[0].Style.ForeColor = Color.Blue;
    row.Cells[28].Style.ForeColor = Color.Red;
}

上面的代码将返回数据库中的结果,但如果数据库的字段输入为' 1Z 4568 29z4h'然后它不会被退回,除非用户输入完全相同的内容。结果显示在DataGridView中。我应该使用不同的查询吗?

1 个答案:

答案 0 :(得分:2)

您可以使用SQL的replace函数将[Serial Number]列中的所有空格替换为空,并使用textBox1.Text.Replace(' ','')确保用户的输入不会#&# 39;也有空格:

var dtCustomers = new DataTable();
var adapter = new OleDbDataAdapter(@"SELECT * FROM Devices WHERE replace([Serial Number], " ", "")='" + textBox1.Text.Relpace(' ','') + "'", conn);
adapter.Fill(dtCustomers);
dataGridView1.DataSource = dtCustomers;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
    row.Cells[0].Style.ForeColor = Color.Blue;
    row.Cells[28].Style.ForeColor = Color.Red;
}
相关问题