Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

photon+Nhibernate,数据库报错,求助
Cloud发起了问答2017-07-20
5
回复
366
浏览

SIKI老师你好,现在情况是这样,我跟着视频做,login和注册的功能都实现了,注册后往数据库里添加新的用户名和密码也没问题,但是当我自己建一个表,想通过客户端传一些数据时,服务器修改sql的时候报错。错误如下:

2017-07-20 11:06:29,963 [12] ERROR NHibernate.AdoNet.AbstractBatcher - Could not execute query: INSERT INTO robot (body, left, right, leg) VALUES (?p0, ?p1, ?p2, ?p3);SELECT LAST_INSERT_ID()

MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'left, right, leg) VALUES ('Body_5', 'gun', 'gun', 'Leg_01');SELECT LAST_INSERT_I' at line 1

代码什么的我都是复制粘贴然后修改的,看了几遍也没找到哪有问题,麻烦帮我看下可能是哪部分出的问题吗?谢谢!

 

所有回复
  • Cloud • 2017-07-20

    我发现如果在数据词典中只包含一个字符串,就不会报错,也可以对数据库进行修改,如果包含两个就会报错,可能是什么原因?谢谢~

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
  • siki • 2017-07-20

    是不是你数据库中定义的(body, left, right, leg 这几个字段,里面有不是varchar类型的,导致添加不上的呢

    还有就是你的代码怎么写的

    AddWithValue("p0", xxx);
    
    
    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
  • siki • 2017-07-20
    AddWithValue("p0", xxx);

    这里你是不是写成

    @p0了

     

    • Cloud • 2017-07-21

      感谢老师的回复,今天终于找到原因了。原来是在声明变量时起了个名字“left”,估计是Nhibernate的关键字,处理程序的时候报错。把这个名字改了就好了。

      (0) 回复
    • siki • 2017-07-21

      回复 @ Cloud: 好的

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!