2014-02-20 107 views
1

上午在C#.Net传递MYSQL查询,我总是得到相同的错误。'/'应用程序中的服务器错误。在C#.net

我的查询是

topCustomers.DataSource = GetData("SELECT l.Username , Sum(ad.Amt) AS Amount ,ad.UserDate FROM adm_advt_answer ad" + 
           "JOIN adm_advt_question adq ON ad.Q_ID = adq.nID" + 
           " INNERJOIN login l ON adq.Buserid = l.Buserid WHERE adq.Buserid = '" + username + "' AND adq.Active='Y' AND date(ad.UserDate) = '2014-02-20'" + 
           " GROUP BY UserId"); 
    topCustomers.DataBind(); 

请纠正我的语法。

我的错误是

您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以在'adm_advt_question adq ON ad.Q_ID = adq.nID INNERJOIN登录l ON adq.Buserid = 1'附近使用正确的语法。在线1

+0

请格式化你的问题... –

+2

INNERJOIN应该是INNER JOIN – wxyz

+1

您也是在这个字符串的开始需要一个空间:“JOIN adm_advt_question adq ON ad.Q_ID = adq.nID”+ – flipchart

回答

0

尝试INNER JOIN而不是INNERJOIN

topCustomers.DataSource = GetData("SELECT l.Username , Sum(ad.Amt) AS Amount 
,ad.UserDate FROM adm_advt_answer ad " +//Notice the space at ending 
"JOIN adm_advt_question adq ON ad.Q_ID = adq.nID" + 
" INNER JOIN login l ON adq.Buserid = l.Buserid WHERE adq.Buserid = '" + username + "' AND 
adq.Active='Y' AND date(ad.UserDate) = '2014-02-20'" + 
" GROUP BY UserId"); 

您应该考虑使用PreparedStatements避免sql injection。(对于参数username

相关问题