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

菜鸟,多谢。可能是SQL语句异常

2013-01-25 
初学者求助,谢谢。可能是SQL语句错误。VS210 参照某书的代码做一个网站按照它的方法建了个公共类BaseClass处

初学者求助,谢谢。可能是SQL语句错误。
VS210 参照某书的代码做一个网站
按照它的方法建了个公共类BaseClass处理数据

这是其中用到的一个方法

//读写数据表--DataTable
public DataTable ReadTable(String strSql)
{
DataTable dt=new DataTable();//创建一个数据表dt
            SqlConnection Conn = new SqlConnection(strConn);//定义新的数据连接控件并初始化
            Conn.Open();//打开连接
            SqlDataAdapter Cmd = new SqlDataAdapter(strSql, Conn);//定义并初始化数据适配器
            Cmd.Fill(dt);//将数据适配器中的数据填充到数据集dt中
Conn.Close();//关闭连接
return dt;
}


然后在展示信息的页面时,运行后报错指向上面的方法的Cmd.Fill(dt)处
提示“用户代码未处理,SqlException 关键字 'user' 附近有语法错误。”

传参过来的前一页的传参代码 是从Gridview的一项中的超链接过来的

<asp:HyperLinkField DataNavigateUrlFields="userid" DataNavigateUrlFormatString="profile.aspx?id={0}"
            DataTextField="username" DataTextFormatString="&#183;{0}" HeaderText="username">


这是问题页面


<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage2.master" AutoEventWireup="true" CodeFile="profile.aspx.cs" Inherits="profile" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <asp:DataList ID="DataList1" runat="server" RepeatColumns="1" Font-Bold="False" 
        Font-Italic="False" Font-Overline="False" Font-Strikeout="False" 
        Font-Underline="False" HorizontalAlign="Center">
        <FooterStyle BackColor="Silver" Font-Bold="False" Font-Italic="False" 
            Font-Names="楷体" Font-Overline="False" Font-Size="Larger" Font-Strikeout="False" 
            Font-Underline="False" ForeColor="Red" HorizontalAlign="Justify" 
            VerticalAlign="Bottom" />
        <HeaderStyle BackColor="Lime" Font-Bold="False" Font-Italic="False" 
            Font-Names="华文楷体" Font-Overline="False" Font-Strikeout="False" 
            Font-Underline="False" ForeColor="Blue" HorizontalAlign="Center" 
            VerticalAlign="Middle" />
        <ItemTemplate>
            <table style="width: 100%">
                <tr>
                    <td>
                        <%# DataBinder.Eval(Container.DataItem, "userid")%>&nbsp;</td>
                </tr>


            </table>
            <table style="width: 100%">
                <tr>
                    <td>
                       <%# DataBinder.Eval(Container.DataItem, "username")%> &nbsp;</td>
                </tr>
            </table>
            <table style="width: 100%">
                <tr>
                    <td>
                    <%# DataBinder.Eval(Container.DataItem, "userinfo")%></td>
                </tr>
            </table>

             </table>
            <table style="width: 100%">
                <tr>
                    <td>
              <a href='mycomments.aspx?id=<%# DataBinder.Eval(Container.DataItem, "articleid")%>'>
                            <%# DataBinder.Eval(Container.DataItem, "userid")%><a/> 
                            </td>
                </tr>
            </table>

        </ItemTemplate>
    </asp:DataList>

</asp:Content>



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GROUP.Manage;
using System.Data;

public partial class profile : System.Web.UI.Page
{

    BaseClass BaseClass1 = new BaseClass();
    protected void Page_Load(object sender, EventArgs e)
    {
        string strsql = "select  * from user where userid=" + Request.Params["id"].ToString();
        DataTable dt = BaseClass1.ReadTable(strsql);


        DataList1.DataSource = dt;
        DataList1.DataBind();

    }

}



做相似的另一个功能时,几乎用了同样的代码可以运行,就这里边的这句SQL语句因为查询的表不同而有不同
直接用request.querystring["id"]也不行,求解,谢谢

另外数据库的表 user 和 comment 以及故障图
菜鸟,多谢。可能是SQL语句异常
菜鸟,多谢。可能是SQL语句异常
报错图
菜鸟,多谢。可能是SQL语句异常

[解决办法]
string strsql = "select  * from [user] where userid=" + Request.QueryString["id"].ToString();//断点看一下querystring["id"]是不是有值
[解决办法]
user在sql中是关键字

把string strsql = "select  * from user where userid=" + Request.Params["id"].ToString();
改成
string strsql = "select  * from [user] where userid=" + Request.Params["id"].ToString();

热点排行