DataTable选择方法未返回任何值

本文关键字:返回 任何值 方法 选择 DataTable | 更新日期: 2024-09-22 11:23:42

我想根据switch表达式的值来检查数据表中的值是否存在。首先,我已经从数据库中加载了数据表。

SqlCommand cmd1 = new SqlCommand("Select mainMenuNum, subMenuData from [menudatas] where ivrNumber = '" + number + "';", objConnection);
 SqlDataReader dataReader = cmd1.ExecuteReader();
 DataTable dt = new DataTable();
 dt.Load(dataReader);

在案例2中,我根据switch表达式的值检查datatable中是否存在记录。但它不起作用。

switch (number)
  {
     case 0: TextToSpeech("No information on 0 button"); break;
     case 1: TextToSpeech("Hello"); break;
     case 2:
          {
             DataRow[] result = dt.Select("subMenuData where mainMenuNum = '" +number + "'");
             if (result != null)
                  { LowerMenu();
                    break;
                  }
             else
                 {
                  SqlCommand cmd = new SqlCommand("Select mainMenuData from [menudatas] WHERE mainMenuNum = '" + number + "' AND ivrNumber = '" + number + "'; ", objConnection);
                  SqlDataReader dr = cmd.ExecuteReader();
                  while (dr.Read())
                  {
                    data = dr.GetString(0);
                  }
                   dr.Close();
                   data1 = data;
                   objConnection.Close();
                   TextToSpeech(data1); break;
                 }
         }
  }

请帮我解决这件事。感谢

DataTable选择方法未返回任何值

只需编写WHERE条件,不包含WHERE关键字或任何其他信息

DataRow[] result = dt.Select("mainMenuNum = '" +number + "'");

此时,结果数组包含与筛选器条件匹配的行。您可以使用检查行的内容

// Check if the result contains at least one row    
if(result.Length > 0)
{
   ....
   // if your logic requires another check on the returned columns you 
   // could add it to the Select expression above or just add a check here
   // Here an example with a column of string type
   if(result[0].Field<string>("YourColumnName") == "value")
     ....     
   ....
}

您可以在MSDN 的DataColumn.expression属性页中找到要在Select方法中使用的表达式的规则