首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

《C#Web应用程序入门经典》学习到第五章碰到的有关问题

2011-12-17 
《C#Web应用程序入门经典》学习到第五章碰到的问题各位高手,正在学习这本书,学到第五章的search.aspx的例子

《C#Web应用程序入门经典》学习到第五章碰到的问题
各位高手,正在学习这本书,学到第五章的search.aspx的例子的时候,
按照教材的程序输入时出现下列编译错误,实在不知问题出在哪里,请帮忙解决一下。

单击   new   search搜索时出现下列错误


第   2   行:   'User '   附近有语法错误。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.Data.SqlClient.SqlException:   第   2   行:   'User '   附近有语法错误。


private   void   btnSearch_Click(object   sender,   System.EventArgs   e)
{
StringBuilder   sql   =   new   StringBuilder();

//   Limit   maximum   resultset   size
sql.Append(@ "SELECT   TOP   ");
sql.Append(ConfigurationSettings.AppSettings[ "searchLimit "]);
sql.Append(@ "
                    [User].UserID,   [User].FirstName,   [User].LastName,  
                    Place.PlaceID,   Place.Name   AS   PlaceName,  
                    PlaceType.Name   AS   PlaceType,   PlaceType.TypeID,
                    TimeLapse.Name   AS   LapseName,   TimeLapse.YearIn,  
                    TimeLapse.MonthIn,   TimeLapse.YearOut,   TimeLapse.MonthOut  
                FROM   [User]  
                LEFT   OUTER   JOIN   TimeLapse   ON  
                    TimeLapse.UserID   =   [User].UserID
                LEFT   OUTER   JOIN   Place   ON
                    Place.PlaceID   =   TimeLapse.PlaceID  
                LEFT   OUTER   JOIN   PlaceType   ON
                    Place.TypeID   =   PlaceType.TypeID  
                ");

//   Build   the   WHERE   clause   now
StringBuilder   qry   =   new   StringBuilder();
if   (txtFirstName.Text   !=   String.Empty)
{
qry.Append( "[User].FirstName   LIKE   '% ");
qry.Append(txtFirstName.Text).Append( "% '   AND   ");
}
if   (txtLastName.Text   !=   String.Empty)
{
qry.Append( "[User].LastName   LIKE   '% ");
qry.Append(txtLastName.Text).Append( "% '   AND   ");
}
if   (cbPlace.SelectedItem.Value   !=   "0 ")
{
qry.Append( "[Place].PlaceID   =   ' ");
qry.Append(cbPlace.SelectedItem.Value).Append( " '   AND   ");
}
if   (cbType.SelectedItem.Value   !=   "0 ")
{
qry.Append( "[PlaceType].TypeID   =   ' ");
qry.Append(cbType.SelectedItem.Value).Append( " '   AND   ");
}
if   (txtYearIn.Text   !=   String.Empty)
{
qry.Append( "TimeLapse.YearIn   =   ");


qry.Append(txtYearIn.Text).Append( "   AND   ");
}
if   (txtYearOut.Text   !=   String.Empty)
{
qry.Append( "TimeLapse.YearOut   =   ");
qry.Append(txtYearOut.Text).Append( "   AND   ");
}

string   filter   =   qry.ToString();
if   (filter.Length   !=   0)  
{
sql.Append( "   WHERE   ");

//   Add   the   filter   without   the   trailing   AND
sql.Append(filter.Remove(filter.Length   -   4,   4));
}

SqlDataAdapter   ad   =   new   SqlDataAdapter(sql.ToString(),   cnFriends);
dsResults   =   new   DataSet();
ad.Fill(this.dsResults, "User ");

//   Adjust   label   for   results
if   (dsResults.Tables[ "User "].Rows.Count   <  
Convert.ToInt32(ConfigurationSettings.AppSettings[ "searchLimit "]))
{
lblLimit.Text   =   "Found   "   +  
dsResults.Tables[ "User "].Rows.Count.ToString()   +  
"   users   matching   your   criteria   on   initial   search. ";
}
else
{
lblLimit.Text   =   "You 're   working   with   the   first   "   +  
ConfigurationSettings.AppSettings[ "searchLimit "]   +
@ "   results.     If   you 're   looking   for   someone   who 's   not   in   this   list,
                  please   search   again   with   a   more   precise   search   criterion. ";
}

//   Place   results   in   session   state
Session[ "search "]   =   dsResults;

BindFromSession();

}

[解决办法]
ConfigurationSettings.AppSettings[ "searchLimit "]这个是什么,如果也是检索内容的话,看看是不是[User].UserID前少了个“,”,设断点看一下最后的SQL语句,直接用查询分析器执行一下看看吧

热点排行