C#——null和空值的区别
知识点:
所有控件的Text属性的在未赋值的情况下是空值(""), 而不是null。string是引用类型;
string str = “” 创建了内存空间,str中存放的是指向堆中的指针。
string str = null 没有创建内存空间,str中存放的是空引用指针;
简单地说:
string str ="";给你一张白纸;
string str = null;连白纸也没有。
问题:今天做查询的时候,没有报错,但无法查出数据。
背景:
想要实现:如果两个框都没输入,直接点击按钮进行查询,那么就查出整张表。
代码:
public string search_ASS(string product,string platform) {
string searchsql = null;
if (product == null && platform == null)//两者都为空,查询出整张表格
{
searchsql = "SELECT* FROM TAB";
return searchsql;
}
else if (......)//product为空
{
......
}
else if (......)//platform为空
{
......
}
else//都不为空
{
......
}
}
断点调试后发现,根本没有进入第一个if情况里。
解决方案:
代码调整
public string search_ASS(string product,string platform) {
string searchsql = null;
if (string.IsNullOrEmpty(product) && string.IsNullOrEmpty(platform))//两者都为空,查询出整张表格
{
searchsql = "SELECT* FROM TAB";
return searchsql;
}
else if (......)//product为空
{
......
}
else if (......)//platform为空
{
......
}
else//都不为空
{
......
}
}