sqlhelper无法删除和修改数据库,但是可以查询和插入,百思不得解,求助

JimCarter
博客专家认证
2016-12-27 03:24:28

上面这段代码的功能就是把同一个sql语句在服务器数据库上,执行一下,然后在我本地数据库上再执行一下。现在有个问题就是ExeNonLocal()方法的返回值总是0,而 ExeNonRemote的返回值正常,不知道是怎么一回事?删除和修改数据库操作只对服务器数据库管用,查询和插入操作对本地和服务器数据库都管用。

本地数据库在自带的Sql server management stuido里直接执行update 或delete语句是可以的,就是一用程序执行就不行了。
ExeNonLocal方法和ExeNonRemote方法见下图:
...全文
297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JimCarter 2016-12-29
  • 打赏
  • 举报
回复
问题终于找到了,不是数据库的原因,因为我的delete和update操作都是根据每一条数据的id列来进行的,而两个数据库的id是不一样的,所以就导致了Remote数据库更改了,而local的却没有更改。 谢谢大家
闭包客 2016-12-28
  • 打赏
  • 举报
回复
异常是 CLR 里面的珍贵信息,请不要捕获它。 只要我们善待异常,它会还给我们更多。
JimCarter 2016-12-28
  • 打赏
  • 举报
回复
图片怎么没有了
第一个图片是
//删除 修改操作
public static int ExecuteNonQuery(string cmdText, params SqlParameter[] parameters)
{
int result;
if (NetState.isConnect())
{
try
{
result = ExeNonLocal(cmdText, parameters);
LoggerLib.log(typeof(SqlHelper), result > 0 ? "删除、修改操作,Local正常" : "删除、修改操作,Local异常");
result = ExeNonRemote(cmdText, parameters);
LoggerLib.log(typeof(SqlHelper), result > 0 ? "删除、修改操作,Remote正常" : "删除、修改操作,Remote异常");

}
catch (SqlException ex)
{
//防止用着用着突然就断开了。

result = ExeNonLocal(cmdText, parameters);
}
}
else
{
result = ExeNonLocal(cmdText, parameters);
}
return result;

}


第二个图片是:
 private static int ExeNonLocal(string cmdText, SqlParameter[] parameters)
{
int result;
SqlConnection conn = new SqlConnection(conLocal);
conn.Open();
SqlCommand cmd = new SqlCommand(conLocal, conn);
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
result = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();

cmd.Dispose();
conn.Close();
conn.Dispose();
return result;


}

private static int ExeNonRemote(string cmdText, SqlParameter[] parameters)
{
int result;
using (SqlConnection conn = new SqlConnection(conRemote))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(conRemote, conn))
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
result = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return result;
}
}
}
JimCarter 2016-12-27
  • 打赏
  • 举报
回复
顶顶 求大神看到
JimCarter 2016-12-27
  • 打赏
  • 举报
回复
引用 1 楼 RFTracking_Jason 的回复:
新人,我个人觉得应该是权限问题。我们自己的程序在跑的期间,如果不用管理员权限停止服务,我们是没有办法进行删除或者修改数据库的,在代码里面如何实现还需要楼主自己继续研究。谢谢
应该不会是权限吧,我都是用sa登录的,拥有所有数据库的权限。 即使是权限的问题,那么用同一个账户登录到SQL 客户端管理工具上,直接运行update或delete语句怎么会没有问题呢? 而且,有时隔几分钟,在代码里执行删除和修改操作的话本地和服务器都正常。有时重启本地的电脑也无法删除和修改,都只能查询。
RFTracking_Jason 2016-12-27
  • 打赏
  • 举报
回复
新人,我个人觉得应该是权限问题。我们自己的程序在跑的期间,如果不用管理员权限停止服务,我们是没有办法进行删除或者修改数据库的,在代码里面如何实现还需要楼主自己继续研究。谢谢

110,567

社区成员

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

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

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