.net 如何不从数据库中添加空值

.net 如何不从数据库中添加空值,.net,vb.net,drop-down-menu,combobox,.net,Vb.net,Drop Down Menu,Combobox,我通过使用数据库的属性来填充组合框-使用数据绑定项 我没有创建另一个表,而是在MainTable中添加了另外两列。 它们应该是DVRID和DVRIP 然后我从DVRID填充了我的comboDVR,在我的下拉列表中我得到了DVR16F和DVR14F,它们的选择值来自DVRIP,这是它们自己的ip地址。 我通常会得到我想要的,唯一的问题是,因为我从一列中填充了我的comboDVR,所以它会得到该列中的所有项目,即使是空的项目。。 所以当我倒下的时候,它太长了。。如果用户单击空白项,则抛出异常。 有没

我通过使用数据库的属性来填充组合框-
使用数据绑定项

我没有创建另一个表,而是在MainTable中添加了另外两列。
它们应该是
DVRID
DVRIP

然后我从
DVRID
填充了我的
comboDVR
,在我的下拉列表中我得到了
DVR16F
DVR14F
,它们的
选择值
来自
DVRIP
,这是它们自己的ip地址。
我通常会得到我想要的,唯一的问题是,因为我从一列中填充了我的
comboDVR
,所以它会得到该列中的所有项目,即使是空的项目。。 所以当我倒下的时候,它太长了。。如果用户单击空白项,则抛出异常。
有没有一种方法可以从DRVID列中删除或不获取空值?或者我需要为此创建一个单独的表吗


顺便说一句我这样做是因为我的老板说他不想让客户手动输入dvr的ip地址,所以他想要一个dvr名称的下拉菜单。

更改SELECT查询以过滤掉
DVRID
为空的行,如下所示:

SELECT ID, MarkerName, Latitude, Longitude, CameraID, DVR, HostAddress, DVRID, DVRIP 
FROM YOUR_TABLE_NAME
WHERE DVRID IS NOT NULL
while(dr.read()) {
     if(dr["DVR"].ToString() == String.Empty)
          continue;
     else
        yourControl.Items.Add(new ListItem("your text", "your value"));
}

如果
select
语句从DVR列返回空值,则可以使用以下方法:

isnull(DVR, '')
因此它返回一个空字符串。然后在您的代码背后,您可以执行以下操作:

SELECT ID, MarkerName, Latitude, Longitude, CameraID, DVR, HostAddress, DVRID, DVRIP 
FROM YOUR_TABLE_NAME
WHERE DVRID IS NOT NULL
while(dr.read()) {
     if(dr["DVR"].ToString() == String.Empty)
          continue;
     else
        yourControl.Items.Add(new ListItem("your text", "your value"));
}

我希望这为您指明了正确的方向。

您能提供您使用的SQL查询吗?刚才从mytable中选择了*。。虽然我没有使用硬代码连接我的组合框,但无论如何,我只是创建了另一个表。谢谢你的回答,我已经找到了解决方案,我只是为该DVR项目创建了一个新表。不会为具有相同问题的其他人删除此项。