C# DataTable选择方法不返回任何值

C# DataTable选择方法不返回任何值,c#,select,datatable,ado.net,C#,Select,Datatable,Ado.net,我想根据开关表达式的值检查datatable中的值是否存在。 首先,我从数据库中加载了datatable SqlCommand cmd1 = new SqlCommand("Select mainMenuNum, subMenuData from [menudatas] where ivrNumber = '" + number + "';", objConnection); SqlDataReader dataReader = cmd1.ExecuteReader(); DataTable

我想根据开关表达式的值检查datatable中的值是否存在。 首先,我从数据库中加载了datatable

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 expression的值检查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;
                 }
         }
  }

请帮我解决这个问题。谢谢

只需写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")
     ....     

   ....
}
//检查结果是否至少包含一行
如果(result.Length>0)
{
....
//如果您的逻辑需要对返回的列进行另一次检查
//可以将其添加到上面的Select表达式中,或者只在此处添加一个复选框
//下面是一个字符串类型列的示例
if(结果[0]。字段(“YourColumnName”)=“值”)
....     
....
}

您可以在on MSDN

中的
Select
方法中找到表达式的规则,但我想基于此where条件检查另一列中的值,然后将数据行置于索引零处以查看字段值抱歉,我不理解它。你能解释一下吗?我的意思是,Select方法过滤DataTable行并返回符合条件的行。如果要在另一列上添加另一个条件,可以将AND运算符添加到过滤器中,即:Select(col1=value1和col2=value2),依此类推。否则,如果您只想在Select中使用一个条件,但需要查看其他列上的值,则只需使用以下语法(结果[0][“ColumnName”]==valuetolookfor)