C# 在mysql数据库的列中搜索空单元格并显示在datagridview上
我的应用程序需要在任务管理软件中搜索未完成的项目。为此,我尝试实现一种方法,可以读取MySQL数据库中未完成的项目,并将它们显示在屏幕上。如果特定单元格为“空值”,则项目将不完整。当单元格显示“已完成”时,项目已完成。我试图搜索一行中的所有空值,并用visual basic C#将它们显示在C# 在mysql数据库的列中搜索空单元格并显示在datagridview上,c#,mysql,datagridview,C#,Mysql,Datagridview,我的应用程序需要在任务管理软件中搜索未完成的项目。为此,我尝试实现一种方法,可以读取MySQL数据库中未完成的项目,并将它们显示在屏幕上。如果特定单元格为“空值”,则项目将不完整。当单元格显示“已完成”时,项目已完成。我试图搜索一行中的所有空值,并用visual basic C#将它们显示在DataGridView上。 我尝试的代码如下所示,但不幸的是它不起作用: private void button4_Click(object sender, EventArgs e) { DataV
DataGridView
上。
我尝试的代码如下所示,但不幸的是它不起作用:
private void button4_Click(object sender, EventArgs e)
{
DataView DV = new DataView(dt);
DV.RowFilter = string.Format("BackSheetAssembled LIKE '%{0}%'", DBNull.Value );
dataGridView1.DataSource = DV;
}
我尝试了用文本框替换DBNull.Value
的相同方法,它可以很好地在数据库中搜索这些文本,但对Null
值无效。试试这个
DV.RowFilter = "Isnull(BackSheetAssembled,'') = ''";
DV.RowFilter=“BackSheetAssembled为空”
例如:
var table = new DataTable();
table.Columns.Add(new DataColumn("Id"));
table.Columns.Add(new DataColumn("Name"));
table.Rows.Add(new object[] { 123, "Name1" });
table.Rows.Add(new object[] { 234, "Name2"});
table.Rows.Add(new object[] { null, "Name3" });
var view = new DataView(table);
view.RowFilter = "Id is null";
for (int i = 0; i < view.Count; i++)
Console.WriteLine(view[i][1].ToString());
Console.ReadLine();
var table=newdatatable();
table.Columns.Add(新数据列(“Id”));
table.Columns.Add(新数据列(“名称”));
Add(新对象[]{123,“Name1”});
Add(新对象[]{234,“Name2”});
Add(新对象[]{null,“Name3”});
var视图=新数据视图(表);
view.RowFilter=“Id为空”;
for(int i=0;i
输出:Name3您可以删除string.Format.works。如果我可以问一下,在那个语句中发生了什么?Ammar-您希望“ISNULL”这样,我们使用ISNULL函数进行过滤。如果单元格值为null,则Isnull函数返回空字符串,然后与空字符串进行比较,得到结果参见。。谢谢。请使用链接解释此代码的工作原理,不要只给出代码,因为解释更有可能帮助未来的读者。另见。