0

可能是一个简单的问题,但我对 ASP.net 很陌生,我不断收到异常

解析查询时出错。[令牌行号=1,令牌行偏移量=142,令牌错误=]

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlServerCe.SqlCeException:解析查询时出错。[令牌行号=1,令牌行偏移量=142,令牌错误=]

我要做的就是让我的网格视图只显示与用户在文本框中输入的内容相似的结果。

protected void Button1_Click(object sender, EventArgs e)
{
   string query = TextBox1.Text;
   string sql = "SELECT [Username], [Job Description] AS Job_Description, [Hours Worked] AS Hours_Worked, [Date], [ID] FROM [TimeData]"; // this one works fine 

   string sql2 = "SELECT [Username], [Job Description] AS Job_Description, [Hours Worked] AS Hours_Worked, [ID], [Date] FROM [TimeData] WHERE ([Username] == '" +query + "'";
   Response.Write("done");
   SqlDataSource1.SelectCommand = sql2;
}

我正在使用本地.SDF文件中的数据源。

提前致谢

4

2 回答 2

3

看起来您在 sql2 末尾缺少右括号

于 2013-02-08T20:38:21.430 回答
2

正如@Adam 所说,您缺少右括号。此外,将 SQL 的“==”更改为“=”。

但是,将用户名 ( queryvar) 直接添加到 SQL 中会使您的应用程序遭受SQL 注入攻击。您应该使用 SQL 参数,请参阅http://www.dotnetperls.com/sqlparameter示例。

于 2013-02-08T20:44:17.160 回答