【问题标题】:SQL Query is giving me a Non-Boolean expression errorSQL 查询给了我一个非布尔表达式错误
【发布时间】:2013-07-25 07:06:56
【问题描述】:

我收到一个错误,显示在“20”附近的预期条件的上下文中指定的非布尔类型的表达式。 20 是查询字符串中的 SelectedPort 值 我认为这个查询有问题。

string tablename = cboNetGuid.SelectedItem.ToString();

SqlConnection sqlConnectionCmdString = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Rick\Documents\Visual Studio 2010\Projects\Server\database\ClientRegit.mdf;Integrated Security=True;User Instance=True");

//Properly Defines the string for naming the table according to the systems naming scheme
string Command = "SELECT Client_Groups, Company, Occupation, ClientID FROM [" + tablename + "] WHERE Port = [" + SelectedPort + "]";

SqlCommand sqlCommand = new SqlCommand(Command, sqlConnectionCmdString);

// will be retrieved - reading methods
// sqlComgroup.Parameters["@Network"].Value = cboNetGuid.SelectedItem.ToString();

sqlConnectionCmdString.Open(); // open database connection

// create database reader to read information from database
SqlDataReader objReader = sqlCommand.ExecuteReader();

// retrieve information from database
while (objReader.Read())
{

  cboClientGroup.Items.Add(Convert.ToString(objReader["Client_Groups"]));

  cboOccupation.Items.Add(Convert.ToString(objReader["Occupation"]));

  cboCompany.Items.Add(Convert.ToString(objReader["Company"]));

  cboClientID.Items.Add(Convert.ToString(objReader["ClientID"]));
}

objReader.Close();
sqlConnectionCmdString.Close();

【问题讨论】:

  • 如果您将代码格式化以便可读,那就太好了。

标签: c# sql


【解决方案1】:

您没有将SelectedPort 与您的SQL 中的任何内容进行比较。 SQL 服务器需要一个类似的条件:

WHERE SelectedPort = Something

【讨论】:

  • 其实应该是WHERE SelectedPort = Something。它是 T-SQL,而不是 C#
  • 感谢@PoweredByOrange 指出这一点,感谢 DanielGimenez 的编辑。
  • 感谢工作的人,我忘了包括我只是在 WHERE 子句中传递值的实际表列
  • 嗨!我的回答对你有帮助吗?如果您能接受答案,我将不胜感激。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2016-05-25
  • 1970-01-01
相关资源
最近更新 更多