[英]Missing operand before 'like' operator
try
{
DataView dv = dt.DefaultView;
dv.RowFilter =(" Like '%" + txtSearch.Text + "%' ");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
請幫助解決這個嘗試在 DGV 中搜索
那是因為你確實錯過了一些東西。 “dv”應該有我們想用“like”語句過濾掉的列。 您沒有提到要過濾的列。 例如:
$"[{columnWeWantToFilter}] Like '%{searchString}%'"
這是我剛剛編寫的代碼來證明我的觀點(是的,我們可以在這里改進很多東西,但這只是我想出的一個快速示例):
void Test()
{
var searchString = "do";
var columnWeWantToFilter = "item";
try
{
var dv = new DataView(InitializeDataView());
dv.RowFilter = $"[{columnWeWantToFilter}] Like '%{searchString}%'"; //Before the like we place the column we want to use to filter
//Here we print it just for testing
foreach (DataRowView dataRow in dv)
{
Console.WriteLine(dataRow["item"]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
//This code was copied from https://docs.microsoft.com/en-us/dotnet/api/system.data.dataview?view=net-5.0 just to initialize the DataView
DataTable InitializeDataView()
{
// Create one DataTable with ONE COLUMN.
var table = new DataTable("table");
var colItem = new DataColumn("item", Type.GetType("System.String"));
table.Columns.Add(colItem);
// Add five items.
DataRow NewRow;
for (int i = 0; i < 5; i++)
{
NewRow = table.NewRow();
NewRow["item"] = "Item " + i;
table.Rows.Add(NewRow);
}
// Change the values in the table.
table.AcceptChanges();
table.Rows[0]["item"] = "cat";
table.Rows[1]["item"] = "dog";
table.AcceptChanges();
return table;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.