C# 连接两个表时出错

C# 连接两个表时出错,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我试图在这里连接两个表,但最终得到错误“toolid附近的语法不正确”,下面是我正在使用的代码。 toolsoutageid和toolid的值已从其他页面发送 link.NavigateUrl=“~/OutageInfo.aspx?outageID=“+outageID+”toolid=“+toolid 在查询字符串上的“and”旁边留出一个空格 select toolname,ErrorDescription,StartTime,EndTime from TransactionDetails

我试图在这里连接两个表,但最终得到错误“toolid附近的语法不正确”,下面是我正在使用的代码。 toolsoutageid和toolid的值已从其他页面发送 link.NavigateUrl=“~/OutageInfo.aspx?outageID=“+outageID+”toolid=“+toolid

在查询字符串上的“and”旁边留出一个空格

select toolname,ErrorDescription,StartTime,EndTime  from TransactionDetails,tools where ToolsOutageID=" + x +" and toolid="+y

假设您的参数是字符串,您应该使用
进行字符串压缩

Assuming that your parameters are string you should use `'` for your string compression.

select 
     toolname,
     ErrorDescription,
     StartTime,
     EndTime  
from 
     TransactionDetails
where 
     ToolsOutageID='" + x +"' 
     and toolid='"+y+"'"
但是您应该使用参数化查询,而不是像上面那样的查询

编辑1
错误-将varchar值“10toolid=1”转换为数据类型int时,转换失败。您的参数为
int
string
,如果是
int
,请删除单引号。没有必要,但我强烈建议您使用参数化queryOk让我问一下,您的参数是否可以为空?如果不为ParameterSok添加“”,则为接受空值,如果x长度为0,则为其分配空值。希望你能抓住我。忘记你的参数。只需在SQL字符串上硬编码两个参数,并告诉我结果。同样,如果您可以启动SQL概要文件并在执行查询之前运行它,并查看概要文件记录的最后一条记录,那么让我们尝试至少获取一条线索。您得到结果了吗
Assuming that your parameters are string you should use `'` for your string compression.

select 
     toolname,
     ErrorDescription,
     StartTime,
     EndTime  
from 
     TransactionDetails
where 
     ToolsOutageID='" + x +"' 
     and toolid='"+y+"'"
int x = Convert.ToInt32(this.Request.QueryString["outageID"]);
int y = Convert.ToInt32(this.Request.QueryString["toolid"]);

 select 
     toolname,
     ErrorDescription,
     StartTime,
     EndTime  
from 
     TransactionDetails
where 
     ToolsOutageID=" + x +"
     and toolid="+y