SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。源错误: 
行 144: DataColumn dc;
行 145: DataRow DR;
行 146: tupian.Fill(ds,"link");
行 147: this.DataGrid2.DataSource=ds.Tables["link"].DefaultView;
行 148: this.DataGrid2.DataBind();
 源文件: h:\wwwroot\myfirstweb\index.aspx.cs    行: 146 堆栈跟踪: 
[OleDbException (0x80040e14): SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
   System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +69
   System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +5
   System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
   my_first_web.index.Page_Load(Object sender, EventArgs e) in h:\wwwroot\myfirstweb\index.aspx.cs:146
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573 ///请各位大侠帮帮忙,小弟急等!!!!

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    this.oleDbConnection1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("datum.mdb");
    //this.oleDbConnection2.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("datum.mdb"); this.oleDbDataAdapter2.Fill(this.dataSet51);
    this.DataGrid1.DataSource=this.dataSet51;
    this.DataGrid1.DataBind(); string strsel="select top 1 * from [images] order by [id] desc";
    OleDbCommand sel=new OleDbCommand(strsel,this.oleDbConnection1);
    this.oleDbConnection1.Open();
    OleDbDataReader dr;
    dr=sel.ExecuteReader();//执行查询操作并返回reader对象
    dr.Read();
    if(!Page.IsPostBack)
    {
    if(dr.HasRows)//获取一个值,该值指示 SqlDataReader 是(否包含一行或)多行
    {
    this.lbxming.Text=dr["xingming"].ToString();//将数据库中的数据绑定到lable控件上,
    this.lbxbie.Text=dr["xingbie"].ToString(); 
    this.lbnling.Text=dr["nianling"].ToString(); 
    this.lbbji.Text=dr["banji"].ToString(); 
    this.lbahao.Text=dr["aihao"].ToString(); 
    this.lbpyu.Text=dr["pingyu"].ToString(); 
    this.img_path.Src=dr["path"].ToString(); 
    }
    }
    this.oleDbConnection1.Close();
    dr.Close();
    ///////////////////////////////////////////////
    /////////////////////
    ///
    string strselid="select top 1 * from teachers order by [id] desc";
    OleDbCommand selid=new OleDbCommand(strselid,this.oleDbConnection1);
    string ss;
    OleDbDataReader drid;
    this.oleDbConnection1.Open();
    drid=selid.ExecuteReader();
    drid.Read();
    ss=drid["id"].ToString();//读取teachers表中的ID列并转化为字符串
    this.oleDbConnection1.Close();
    int sa=Convert.ToSByte(ss);//将ss强制转化为整数型并赋给sa
    if(sa>=10)
    {
    string seltext="select top 10 * from [teachers] order by [id] desc"; //string seltext="select top " +ss.ToString() + " * from [teachers] order by id desc";//
    OleDbCommand selcommand=new OleDbCommand(seltext,this.oleDbConnection1);
    OleDbDataAdapter tupian=new OleDbDataAdapter(seltext,this.oleDbConnection1);
    DataSet ds=new DataSet();//创建dataset对象
    DataColumn dc;//定义一个行对象
    DataRow DR;//和列对象
    tupian.Fill(ds,"link");
    this.DataGrid2.DataSource=ds.Tables["link"].DefaultView;
    this.DataGrid2.DataBind(); DataTable dt=new DataTable("img");//定义数据表对象 int i=0;
    for(i=0;i<10;i++)//使用for循环为每一行赋值
    {
    dc=new DataColumn("column" + i,System.Type.GetType("System.String"));//定义列对象并且定义列的数据类型
    dt.Columns.Add(dc);//将列加入到表中
    }
    ds.Tables.Add(dt);//将datatable加入到dataset中
    DR=dt.NewRow();//定义新数据行 OleDbConnection cnn=new OleDbConnection(); OleDbCommand cmd;
    cnn=this.oleDbConnection1;
    cnn.Open();
    cmd=new OleDbCommand("Select [images] From [teachers] order by [id] desc",cnn);
    OleDbDataReader drtable=cmd.ExecuteReader();
    drtable.Read();
    for(i=0;i<10;i++)
    {
    drtable.Read();
    DR[i]="<img src=" +drtable["images"].ToString()+" width=100  height=120 border=0>";
    }
    dt.Rows.Add(DR);
    this.DataGrid2.DataSource=ds.Tables["img"];
    this.DataGrid2.DataBind();
    cnn.Close();
    }
    else
    {
    string seltext="select top ss * from [teachers] order by [id] desc";
    OleDbCommand selcommand=new OleDbCommand(seltext,this.oleDbConnection1);
    OleDbDataAdapter tupian=new OleDbDataAdapter(seltext,this.oleDbConnection1);
    DataSet ds=new DataSet();
    DataColumn dc;
    DataRow DR;
    tupian.Fill(ds,"link");
    this.DataGrid2.DataSource=ds.Tables["link"].DefaultView;
    this.DataGrid2.DataBind(); DataTable dt=new DataTable("img"); int i=0;
    for(i=0;i<10;i++)
    {
    dc=new DataColumn("column" + i,System.Type.GetType("System.String"));
    dt.Columns.Add(dc);

    }
    ds.Tables.Add(dt);
    DR=dt.NewRow();

    OleDbConnection cnn=new OleDbConnection(); OleDbCommand cmd;
    cnn=this.oleDbConnection1;
    cnn.Open();
    cmd=new OleDbCommand("Select [images] From teachers order by [id] desc",cnn);
    OleDbDataReader drtable=cmd.ExecuteReader();
    drtable.Read();

    for(i=0;i<10;i++)
    {
    drtable.Read();
    DR[i]="<img src=" +drtable["images"].ToString()+" width=100  height=120 border=0>";
    }
    dt.Rows.Add(DR);
    this.DataGrid2.DataSource=ds.Tables["img"];
    this.DataGrid2.DataBind();
    cnn.Close();
    } } 
    //注:这是全部的代码!!
      

  2.   

    大家用好!bbs.ab07.cn欢迎您的到来,本站刚上线!为了就是给爱好电脑的志同道合的朋友们一个好的交流平台!希望您的注册,发表您的文章,您你的想法,意见.你可以高谈阔论!
    由于刚上线,很多东西不健全,包函!欢迎你的注册.欢迎您的加入!您可以成为管理员,或各级版主!有意做管理员或版主的请发往[email protected] , [email protected]
      

  3.   

    select top ss * from [teachers] order by [id] desc
    --------------
    把*删掉...
      

  4.   

    select top ss * from [teachers] order by [id] desc
    --------------
    呵呵...看错了...哪里正解啊...应该把top ss删掉...不过还不是不建议用*...
      

  5.   

    对了,现在又有新问题了,出现了
    不存在此行/列的数据。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 不存在此行/列的数据。源错误: 
    行 172: {
    行 173: drtable.Read();
    行 174: DR[i]="<img src=" +drtable["images"].ToString()+" width=100  height=120 border=0>";
    行 175: }
    行 176: dt.Rows.Add(DR);