SQL Server CE查询异常

时间:2013-02-08 20:36:03

标签: c# asp.net sql-server-ce

可能是一个简单的问题,但我是ASP.net的新手,我一直得到异常

  

解析查询时出错。 [令牌行号= 1,令牌   line offset = 142,Token in error =]

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息及其在代码中的起源。

     

异常详细信息: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文件中的数据源。

提前致谢

2 个答案:

答案 0 :(得分:3)

看起来你错过了sql2

末尾的右括号

答案 1 :(得分:2)

正如@Adam所说,你缺少一个右括号。另外,对于SQL,将“==”更改为“=”。

但是,将用户名(query var)直接添加到SQL会将您的appklication打开为SQL injection攻击。您应该使用SQL参数,请参阅http://www.dotnetperls.com/sqlparameter示例。