请帮看看下面的ASP.NET数据保存程序为什么不能执行?
程序功能:往Price表中插入或修改一条纪录(如果有2007-8-8日某商品价格,则修改,没有,则新增)
string StrStampNO;
StrStampNO=e.Item.Cells[5].Text;
string CnnString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "+Server.MapPath( "Stamp.MDB ");
OleDbConnection cnn = new OleDbConnection(CnnString);
StringBuilder Sb=new StringBuilder( "Select * from Price Where StampNO= ");
Sb.Append(StrStampNO);
Sb.Append( " And Date= '2007-8-8 ' ");
DataSet Ds=new DataSet();
OleDbDataAdapter Adapter=new OleDbDataAdapter(Sb.ToString(),cnn);
OleDbCommandBuilder Cb=new OleDbCommandBuilder(Adapter);
Adapter.Fill(Ds, "Price ");
DataRow Dr;
Boolean IsNew=false;
if (Ds.Tables[ "Price "].Rows.Count==0){
Dr=Ds.Tables[ "Price "].NewRow();
Dr[ "StampNo "]=Convert.ToInt32(StrStampNO);
Dr[ "Date "]=txtDate.Text;
IsNew=true;
}else
Dr=Ds.Tables[ "Price "].Rows[0];
Dr[ "KP "]=30;
Dr[ "SP "]=30;
Dr[ "ZG "]=30;
Dr[ "ZD "]=30;
if (IsNew)
Ds.Tables[ "Price "].Rows.Add(Dr);
Adapter.Update(Ds, "Price ");
运行结果:
“/”应用程序中的服务器错误。
--------------------------------------------
INSERT INTO 语句的语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:
System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。
源错误:
生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:
1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例:
<%@ Page Language= "C# " Debug= "true " %>
或者:
------解决方案--------------------你的语句呢?报的是INSERT INTO 语句的语法错误。都没看见你的INSERT INTO 语句
------解决方案--------------------OleDbCommandBuilder 这东西我也只是在winform时用过...web一般很少用到这东西的
直接换成OleDbCommand来执行插入语句..试试...
------解决方案--------------------Dr[ "Date "]=txtDate.Text;
==========================
有个字段叫Date,是Access的关键字,看看是不是这里的原因(改了字段名试一下)
------解决方案--------------------没准儿让楼上的说中了:)
------解决方案--------------------amandag(高歌) ( ) 信誉:98 2007-08-09 17:09:58 得分: 0
Dr[ "Date "]=txtDate.Text;
==========================
有个字段叫Date,是Access的关键字,看看是不是这里的原因(改了字段名试一下)
还可能是,Date是时间类型或者其他的什么.我记得Access时间字段要加#的.
Dr[ "Date "]= "# "+txtDate.Text+ "# ";