0

我正在使用此代码从数据表中获取数据,

List<CustomList> cls = new List<CustomList>();
using (SqlConnection conn = new SqlConnection(CS()))
using (SqlCommand cmd = new SqlCommand(selectStatement, conn))
{
  conn.Open();

  using (SqlDataReader rdr = cmd.ExecuteReader())
  {
    while (rdr.Read())
    {
      CustomList cl = new CustomList();
      cl.FruitA = Convert.ToInt32(rdr["FruitA"]);
      cl.FruitB = Convert.ToInt32(rdr["FruitB"]);

      if (!Convert.IsDBNull(rdr["FruitCrateString"]))
        cd.FruitCrateString = rdr["FruitCrateString"].ToString();

      cls.add(cl); 
      //how can i skip above when  FruitCrateString is null and don't add rest to list

现在我知道 FruitA 和 FruitB 永远不会为空,但 FruitCrateString 可以为空,但如果 fruitCrateString 为空,我想跳过列表实例,我知道我可以这样做,

while (rdr.Read())
{
  if (!Convert.IsDBNull(rdr["FruitCrateString"]))
  {
    cl.FruitA = Convert.ToInt32(rdr["FruitA"]);
    cl.FruitB = Convert.ToInt32(rdr["FruitB"]);

    cd.FruitCrateString = rdr["FruitCrateString"].ToString();
}

但是有没有更好的方法来解决这个问题?

4

1 回答 1

3

我知道的最佳解决方案是在 SQL 选择命令中添加“IS NOT NULL”。有了它,您可以确定您收到的所有元素都是好的。

SELECT * FROM Fruits WHERE FruitA IS NOT NULL;

希望能帮助到你。

于 2013-07-09T10:10:28.790 回答