源码:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;namespace Chat
{
/// <summary>
/// update 的摘要说明。
/// </summary>
public class update : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox title_txb;
protected System.Web.UI.WebControls.DropDownList sort;
protected System.Web.UI.WebControls.LinkButton add;
protected System.Web.UI.WebControls.TextBox newsort;
protected System.Web.UI.WebControls.TextBox content_txb;
protected System.Web.UI.WebControls.Button save_btn;
protected System.Web.UI.WebControls.Button tijiao_btn;
protected System.Web.UI.HtmlControls.HtmlTableCell TD1;
protected System.Web.UI.WebControls.TextBox keywds_txb;
protected System.Web.UI.WebControls.TextBox author_txb;
protected System.Web.UI.WebControls.TextBox from_txb;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.HtmlControls.HtmlTableCell Td2;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
this.addsort();//填充分类列表
string dbname=Server.MapPath(@"db\webdb.mdb");//数据库源
OleDbConnection OleDbcon=new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+dbname);
OleDbDataAdapter sda=new OleDbDataAdapter("select *from article",OleDbcon);
OleDbCommandBuilder scb=new OleDbCommandBuilder(sda);//
DataSet ds=new DataSet();
sda.Fill(ds);
Session["myds"]=ds;
Session["mysda"]=sda;
}
} #region 填充dropdownlist
private void addsort()
{
string strOleDb="select distinct sort from article where sort is not null";
string dbname=Server.MapPath(@"db\webdb.mdb");//数据库源
OleDbConnection OleDbcon=new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+dbname);
OleDbCommand OleDbcomm=new OleDbCommand(strOleDb,OleDbcon);
try
{
OleDbcon.Open();
OleDbDataReader OleDbdr=OleDbcomm.ExecuteReader(); while(OleDbdr.Read())
this.sort.Items.Add(OleDbdr["sort"].ToString());

OleDbdr.Close();
}
catch(Exception ex)
{
Response.Write("ERROR:"+ex.Message.ToString());
}
finally
{
OleDbcon.Close();
}
}
#endregion #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.add.Click += new System.EventHandler(this.add_Click);
this.save_btn.Click += new System.EventHandler(this.save_btn_Click);
this.tijiao_btn.Click += new System.EventHandler(this.tijiao_btn_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion //保存
private void save_btn_Click(object sender, System.EventArgs e)
{
DataSet ds=(DataSet)Session["myds"];
DataTable dt=ds.Tables[0];
DataRow dr=dt.NewRow();
dr["title"]=this.title_txb.Text;
dr["sort"]=this.sort.SelectedValue.ToString();
dr["keywds"]=this.keywds_txb.Text;
dr["content"]=this.content_txb.Text;
dr["from"]=this.from_txb.Text;
dr["author"]=this.author_txb.Text;
dr["edittime"]=DateTime.Now.ToString();
dt.Rows.Add(dr);
Response.Write("<script>alert('已经保存,待提交!')</script>");
}
//提交
private void tijiao_btn_Click(object sender, System.EventArgs e)
{
OleDbDataAdapter sda=(OleDbDataAdapter)Session["mysda"];
DataSet ds=(DataSet)Session["myds"];
sda.Update(ds);
ds.AcceptChanges();
Response.Write("<script>alert('提交成功!')</script>");
} //添加文章新类别
private void add_Click(object sender, System.EventArgs e)
{
if(this.newsort.Text!=null)
{
this.sort.Items.Add(this.newsort.Text);
this.newsort.Text="";
}
}
}
}异常:
“/Chat”应用程序中的服务器错误。
--------------------------------------------------------------------------------INSERT INTO 语句的语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。源错误: 
行 122: OleDbDataAdapter sda=(OleDbDataAdapter)Session["mysda"];
行 123: DataSet ds=(DataSet)Session["myds"];
行 124: sda.Update(ds);
行 125: ds.AcceptChanges();
行 126: Response.Write("<script>alert('提交成功!')</script>");
 

解决方案 »

  1.   

    这个问题困扰我一下午了,前几次没错异常高亮显示是这句 sda.Update(ds);
      

  2.   

    是不是from是特殊字符,致使数据库无法执行操作,那应该怎么解决?
      

  3.   

    例如:OleDbDataAdapter sda=new OleDbDataAdapter("select *from article",OleDbcon);
    改为 OleDbDataAdapter sda=new OleDbDataAdapter("select *from [article]",OleDbcon);
      

  4.   

    update 的构造有
    新增 是 add
    修改 是 update table set **** where id=**你看一下。修改的时候ds 的状态不对
      

  5.   

    4楼说的看似有道理,但用到表中似乎不行,我想应该是单个字段有问题,比如就像from,它是一个特殊字符,加[]吧不字段该往哪儿加,而且我又没直接写sql语句。6楼说的问题更是行不通,两个事件,保存和提交,进行批量编辑,不是你所说的新增和修改问题,我觉得还是出在from上。
      

  6.   

    晕,将这条注释了还是不行 //dr["from"]=this.from_txb.Text;
    难道我分析错了,不是什么所谓的特殊字符问题。