读书人

请帮看看下面的ASP.NET数据保存程序为

发布时间: 2012-01-05 22:36:54 作者: rapoo

请帮看看下面的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+ "# ";

读书人网 >asp.net

热点推荐