找回密码
 立即注册

QQ登录

只需一步,快速开始

houys 悬赏达人认证 活字格认证

高级会员

133

主题

443

帖子

1582

积分

高级会员

积分
1582

活字格高级认证悬赏达人活字格认证圣诞拼拼乐

houys 悬赏达人认证 活字格认证
高级会员   /  发表于:2021-10-12 14:14  /   查看:2977  /  回复:15
100金币
本帖最后由 Chelsey.Wang 于 2021-10-22 14:25 编辑


服务端编程调用修改方法的时候报错One or more errors occurred. (更新数据库失败),添加的时候不报错。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

如果是用户授权在未登录情况下是不能修改表数据的,只能添加数据, 同时这是自定义的webAPi,还没有统一封装身份验证的处理, 这种的话现在要么使用并发授权,要么写服务端命令来做数据表的修改

15 个回复

倒序浏览
最佳答案
最佳答案
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-10-12 14:14:09
来自 14#
本帖最后由 Joe.xu 于 2021-10-25 12:22 编辑
houys 发表于 2021-10-18 09:19
用户授权在未登录情况下可以先根据用户名密码进行获取用户信息然后再添加吗。还是说想要用服务端api修改 ...

如果是用户授权在未登录情况下是不能修改表数据的,只能添加数据,
同时这是自定义的webAPi,还没有统一封装身份验证的处理
这种的话现在要么使用并发授权,要么写服务端命令来做数据表的修改
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-10-12 15:08:20
2#
老板,您这是写的webapi来修改的吗,这个需要调试代码才好定位问题,
麻烦您,附上一个可以复现问题的小demo,并附上一些截图说明。这边才能更好配合您来调查哦
回复 使用道具 举报
houys悬赏达人认证 活字格认证
高级会员   /  发表于:2021-10-14 10:08:08
4#
Joe.xu 发表于 2021-10-12 15:08
老板,您这是写的webapi来修改的吗,这个需要调试代码才好定位问题,
麻烦您,附上一个可以复现问题的小de ...

这个就是以后外部发送请求接口接收然后调用api修改指定数据。接口没有别的复杂代码。
就是每次调用这个方法传递一个id参数,根据id更改对应行的时间。就没有别的代码了。
现在是我在本地没有问题,每次调用都会修改指定时间,但是发布到服务器上之后就出现了这个问题,所以我也复现不了。能给说几个的问题吗,我一一排查看一下。
奇怪的是添加数据没有问题,。只有修改有问题
  1. //定义键为string,值为object类型的Dictionary
  2.                                 Dictionary<string, object> values = new Dictionary<string, object>();
  3.                                 //定义要更新的记录
  4.                                 ColumnValuePair valuepair = new ColumnValuePair();
  5.                                 valuepair.ColumnName = "EID";
  6.                                 valuepair.Value = rFID.data.DeviceNo;
  7.                                 //valuepair.Value = 1;
  8.                                 //要被更新的值,Key表示列名,值是要被更新的值
  9.                                 values = new Dictionary<string, object>();
  10.                                 values.Add("heartbeatTime", DateTime.Now.ToLocalTime().AddMinutes(1).ToString());
  11.                                 //values = new Dictionary<string, object>();
  12.                                 //values.Add("EID", '1');
  13.                                 //使用UpdateTableData方法更新指定数据表的一条记录
  14.                                 this.DataAccess.UpdateTableData("AA__equipment", valuepair, values);
复制代码


走到this.DataAccess.UpdateTableData()方法的时候报错,更新数据库失败
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-10-14 12:12:27
5#
houys 发表于 2021-10-14 10:08
这个就是以后外部发送请求接口接收然后调用api修改指定数据。接口没有别的复杂代码。
就是每次调用这个 ...

您好,我这边写了一个api,
调用是成功的,


您可以需要从这些方面排查一下,修改的表中是不是有这个条数据以及是否设置了主键


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
houys悬赏达人认证 活字格认证
高级会员   /  发表于:2021-10-14 15:01:59
6#
Joe.xu 发表于 2021-10-14 12:12
您好,我这边写了一个api,
调用是成功的,

这个更新数据库失败会添加到活字格日志里吗。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-10-14 16:10:38
7#
houys 发表于 2021-10-14 15:01
这个更新数据库失败会添加到活字格日志里吗。

您好,不管是前端还是webapi调用,都会有日志的,
如果更新数据库失败,先看日志,如果没有日志的,原因可能就需要慢慢排查了
回复 使用道具 举报
houys悬赏达人认证 活字格认证
高级会员   /  发表于:2021-10-15 15:24:36
8#
Joe.xu 发表于 2021-10-14 16:10
您好,不管是前端还是webapi调用,都会有日志的,
如果更新数据库失败,先看日志,如果没有日志的,原因 ...

日志错误信息

CurrentMethodName: ExecuteWebApiUpdate
Tid:23 2021/10/15 15:23:21: Assembly: Forguncy.Server2, Version=7.0.5.0, Culture=neutral, PublicKeyToken=967100671921c115 -----------
{
  "ClassName": "System.Exception",
  "Message": "请先登录系统再更新数据库",
  "Data": null,
  "InnerException": null,
  "HelpURL": null,
  "StackTraceString": "   at Forguncy.Server2.Controllers.DataAcessUtility.e.ab()
   at Forguncy.Server2.Controllers.DataAcessUtility.e.ac()
   at Forguncy.Server2.Controllers.HomeController.bb.a.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Forguncy.Server2.Controllers.HomeController.a(Func`2 A_0)",
  "RemoteStackTraceString": null,
  "RemoteStackIndex": 0,
  "ExceptionMethod": null,
  "HResult": -2146233088,
  "Source": "Forguncy.Server2",
  "WatsonBuckets": null
}

CurrentMethodName: ExecuteWebApiUpdate

回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-10-15 16:20:14
9#
houys 发表于 2021-10-15 15:24
日志错误信息

CurrentMethodName: ExecuteWebApiUpdate

您这webAPi不是在活字格内部调用的吗,看起来像是权限的问题,
没有找到用户信息,无法判断是否有权限错操作这个数据库表
回复 使用道具 举报
houys悬赏达人认证 活字格认证
高级会员   /  发表于:2021-10-15 16:25:38
10#
Joe.xu 发表于 2021-10-15 16:20
您这webAPi不是在活字格内部调用的吗,看起来像是权限的问题,
没有找到用户信息,无法判断是否有权限错 ...

webapi是添加到活字格中,然后发布的,外部访问这个api,这个是数据库表的权限。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部