首页 新闻 会员 周边 捐助

c#向数据库插入字段中 带‘{’

0
悬赏园豆:15 [已解决问题] 解决于 2013-11-25 14:17

 向数据库 插入一条 语句

string formula = " insert into [tb_attendanceformula](id, organizationid, itemname, itemcode, formulacode, formulaname, name, category, orderby, explain) ";
                        formula += "values (newid(),'A8A7DDF4-5DD4-4CE8-9087-868A911F3DA3','基础项','BasicItem', 'S0001  /  22.5  / 8','{基本工资等级}   /  22.5  /  8','',0,1,'')";

 

if (db.Prepare(formula).ExecNonQuery() > 0)
   {

   }

为什么‘ {’不能 插入 报错 格式不正确  去掉‘{’就成功了

c#
梁娜的主页 梁娜 | 初学一级 | 园豆:39
提问于:2013-11-20 10:30
< >
分享
最佳答案
0

把具体错误贴出来下,{}不算是关键字。

收获园豆:10
幻天芒 | 高人七级 |园豆:37207 | 2013-11-20 12:57

DataPortal.Update 失败 (System.FormatException: 输入字符串的格式不正确。

   在 Ship.Core.Data.SqlServer.SqlStatement.ExecNonQuery(Object[] parameters) 位置 f:\ship.net\Ship.Core.Data.SqlServer\Sqless\SqlStatement.cs:行号 84

   在 Ship.Core.Data.AttendanceFormulaFactory.Fetch(AttendanceFormulaCriteriaData Criteria) 位置 f:\ship.net\Ship.Core.Data\Factory\Attendance\AttendanceFormulaFactory.cs:行号 54

   在 Ship.Core.Models.AttendanceFormulaList.GetDataCommand.DataPortal_Execute() 位置 f:\ship.net\Ship.Core.Models\Attendance\AttendanceFormulaList.cs:行号 107

   在 lambda_method(Closure , Object , Object[] )

   在 Csla.Reflection.MethodCaller.CallMethod(Object obj, DynamicMethodHandle methodHandle, Boolean hasParameters, Object[] parameters))

梁娜 | 园豆:39 (初学一级) | 2013-11-20 13:43

@梁娜:把最终的sql语句贴下呢?用SQL profiler监视的sql语句。 

幻天芒 | 园豆:37207 (高人七级) | 2013-11-20 13:56

@幻天芒: SQL profiler 监视的sql语句 中 没有 找到 这条插入语句  是不是 错误语句不显示呢?

梁娜 | 园豆:39 (初学一级) | 2013-11-20 14:31

@梁娜: 不会不显示的,是不是你勾选的监视条件不够?

幻天芒 | 园豆:37207 (高人七级) | 2013-11-21 13:06
其他回答(3)
0

把{}转义一下 \{}\

Zery | 园豆:6151 (大侠五级) | 2013-11-20 10:45
0

转义一下,或者把它写在参数,参数是安全的,也是通用的,虽再拼sql了。

收获园豆:5
angelshelter | 园豆:9914 (大侠五级) | 2013-11-20 12:05
0

看看db.Prepare(formula)里面做了什么

诶碧司 | 园豆:1912 (小虾三级) | 2013-11-20 18:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册