C# 查询未按预期工作
我在C语言中执行查询时遇到以下问题 我使用以下方法执行简单查询:C# 查询未按预期工作,c#,sql-server,C#,Sql Server,我在C语言中执行查询时遇到以下问题 我使用以下方法执行简单查询: public List<DataModel.Vulnerability.VulnerabilitySolution> getVulnerabilitySolutionsList(int vulnId) { List<DataModel.Vulnerability.VulnerabilitySolution> result = new List<Vulnerability
public List<DataModel.Vulnerability.VulnerabilitySolution> getVulnerabilitySolutionsList(int vulnId)
{
List<DataModel.Vulnerability.VulnerabilitySolution> result = new List<Vulnerability.VulnerabilitySolution>();
System.Data.Common.DbCommand command;
command = _connection.CreateCommand();
command.Connection = this._connection;
_strSQL = "VS.* FROM VulnerabilityAlertDocument_VulnerabilitySolution VAD_VS"
+ " INNER JOIN VulnerabilitySolution VS ON VAD_VS.VulnerabilitySolutionId = VS.Id"
+ " WHERE VAD_VS.VulnerabilityAlertDocumentId = @VULNID ";
addParameter(command, "@VULNID", vulnId);
command.CommandText = _strSQL;
_dt = fillDataTable(command);
DataModel.Vulnerability.VulnerabilitySolution vulnSolution;
foreach (DataRow row in _dt.Rows)
{
vulnSolution = new DataModel.Vulnerability.VulnerabilitySolution(row);
result.Add(vulnSolution);
}
return result;
}
问题是,当尝试执行这一行时:_dt=fillDataTablecommand;它抛出以下异常:“*”附近的语法不正确
有什么问题吗?如果我尝试在SQLServer中执行相同的查询,替换参数的值,效果会很好
如何解决此问题?您需要在VS之前添加单词select*
_strSQL = "SELECT VS.* FROM VulnerabilityAlertDocument_VulnerabilitySolution VAD_VS"
+ " INNER JOIN VulnerabilitySolution VS ON VAD_VS.VulnerabilitySolutionId = VS.Id"
+ " WHERE VAD_VS.VulnerabilityAlertDocumentId = @VULNID ";
您缺少SELECT关键字。从……中选择VS.*看起来有一些我没有注意到添加的新关闭类型。投票关闭,因为这看起来像是一个简单的打字错误。@Dash有趣的是,OP在关闭之前甚至没有机会看到这是否解决了整个问题。@PortlandRunner如果不是这样的话,我们可以取消它。说得对。不,这是一件你可以永远关注并且容易忽略的事情。我们都去过那里