DataTable select 方法未返回任何值
DataTable select method not returning any value
我想根据开关表达式的值检查数据表中的值是否存在。
首先,我从数据库中加载了数据表。
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 表达式的值检查记录是否存在于数据表中。但它不起作用。
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;
}
}
}
请帮我解决这个问题matter.Thanks
只写 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 property page 中找到在 Select
方法中使用的表达式的规则
我想根据开关表达式的值检查数据表中的值是否存在。 首先,我从数据库中加载了数据表。
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 表达式的值检查记录是否存在于数据表中。但它不起作用。
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;
}
}
}
请帮我解决这个问题matter.Thanks
只写 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 property page 中找到在Select
方法中使用的表达式的规则