我输入了数据库中存在的用户名。该名称只有名字和姓氏。所以中间名是空的,它作为 null
存储在数据库中。为了获取用户的员工 ID,我使用了以下查询。但是执行查询后obj的值为null
。名字和姓氏存储在一个数组中。我检查了他们的值(value)观。他们的值(value)观还可以。
你能告诉我为什么这个对象没有获取任何值吗?
SqlCommand cmm1= new SqlCommand ();
cmm1.CommandText = ("Select empID from empPersonalInfo where empFirstName= '" + arr[0].ToString() + "' and empMiddleName= '" + System.DBNull.Value + "' and empLastName= '" + arr[2].ToString() + "' ");
cmm1.Connection = conn;
obj = cmm1.ExecuteScalar();
最佳答案
您不能使用等于“=”来比较 NULL,而是使用“IS NULL”:
cmm1.CommandText = ("Select empID from empPersonalInfo where empFirstName= '" +
arr[0].ToString() + "' and empMiddleName IS NULL and empLastName= '" +
arr[2].ToString() + "' ");
顺便说一句,这个查询真的没有多大意义。也许:
empMiddleName IS NULL OR empMiddleName = @somevalue
另外,请注意:您可能容易受到 SQL 注入(inject)攻击。使用参数而不是连接用户输入值。
关于c# - 通过sqlquery C#检查数据库中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457937/