那里转换错了求大神 急

qq_34492203 2016-03-31 10:55:39

“/”应用程序中的服务器错误。

从数据类型 varchar 转换为 numeric 时出错。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 从数据类型 varchar 转换为 numeric 时出错。

源错误:



行 28: cmd.CommandText = sql;
行 29: bool st = true;
行 30: if (cmd.ExecuteNonQuery() > 0)
行 31: {
行 32: st = true;


源文件: D:\SVN\TheStooges.dal\SqlHelper.cs 行: 30

堆栈跟踪:



[SqlException (0x80131904): 从数据类型 varchar 转换为 numeric 时出错。]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +2442030
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5736648
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +628
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +3731
System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) +940
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) +272
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +280
TheStooges.dal.SqlHelper.update(String sql) in D:\SVN\TheStooges.dal\SqlHelper.cs:30
TheStooges.admin.Billing_order.billingadd.Page_Load(Object sender, EventArgs e) in D:\SVN\TheStooges\admin\Billing order\billingAdd.aspx.cs:24
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +95
System.Web.UI.Control.LoadRecursive() +59
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2952



Order_time datetime
Order_cont MAX
Order_shou decimal(18, 6)
Order_chu decimal(18, 6)
Order_name 50
t1 200
t2 200
t3 200
t4 200
t5 200
...全文
166 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
练白龙 2016-03-31
  • 打赏
  • 举报
回复
定义个String变量来接收Insert语句,debug取这个insert语句,然后放在sqlserver上执行一下就知道哪里错了。
qq_34492203 2016-03-31
  • 打赏
  • 举报
回复
bool dts = SqlHelper.update("INSERT INTO b (Order_time,Order_cont,Order_shou,Order_chu) VALUES ('" + adminmz + "','" + adminmm + "'," + adminjb + ",'" + beizhu + "')");
songbing774933 2016-03-31
  • 打赏
  • 举报
回复
这个是SQL语句的问题,你帖代码没用啊
把SQL字符串帖出来
qq_34492203 2016-03-31
  • 打赏
  • 举报
回复
namespace TheStooges.admin.Billing_order { public partial class billingadd : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.Form["adminName"] != null) { string adminmz = Request.Form["adminName"].Trim(); string adminmm = Request.Form["adminPass"].Trim(); int adminjb = int.Parse(Request.Form["DropDownJibie"]); string beizhu = Request.Form["ShopImgList"].Trim(); bool dts = SqlHelper.update("INSERT INTO b (Order_time,Order_cont,Order_shou,Order_chu) VALUES ('" + adminmz + "','" + adminmm + "'," + adminjb + ",'" + beizhu + "')"); switch (dts) { case true: Response.Write("<script>alert('提交信息成功');window.location.href='billing.aspx';</script>"); break; case false: Response.Write("<script>alert('提交信息失败,请从新提交!!');window.location.href='billing.aspx';</script>"); break; } } } } } } 您帮我看看
Sebavid 2016-03-31
  • 打赏
  • 举报
回复
cmd.CommandText = sql 传入的sql语句 有问题 你的sql语句给的值不能转换成响应的数据库字段类型 可以打个断点或输出你的sql语句 自己看看
江南小鱼 2016-03-31
  • 打赏
  • 举报
回复
你的Order_chu是decimal(18, 6)类型,你的sql语句插入一个字符串(beizhu),你这是闹哪般呢~
小小农民 2016-03-31
  • 打赏
  • 举报
回复
Order_shou decimal(18, 6)是数字型的,你insert的时候该字段对应的是 ,'" + beizhu + "',这是字符型的,不对,要去掉引号,或者是你对应错了

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧