用的access 数据库 修改记录时候 总是不成功 也不报错

pig510520 2011-05-13 02:36:15

public const string CategoryUpdate = "UPDATE [SCM_ContentCategory] SET [ParentId] = @ParentId, [TemplateId] = @TemplateId, [Title] = @Title, [Content] = @Content, [ContentView] = @ContentView, [UseSubTemplate] = @UseSubTemplate, [SubOrdering] = @SubOrdering, [Kind] = @Kind, [SortOrder] = @SortOrder WHERE [CategoryId] = @CategoryId;";



public bool Update(CategoryInfo target)
{
OleDbParameter[] op = {
new OleDbParameter("@CategoryId", OleDbType.Integer),
new OleDbParameter("@ParentId", OleDbType.Integer),
new OleDbParameter("@TemplateId", OleDbType.Integer),
new OleDbParameter("@Title", OleDbType.VarWChar),
new OleDbParameter("@Content", OleDbType.LongVarWChar),
new OleDbParameter("@ContentView", OleDbType.Integer),
new OleDbParameter("@UseSubTemplate", OleDbType.Boolean),
new OleDbParameter("@SubOrdering", OleDbType.Integer),
new OleDbParameter("@Kind", OleDbType.Integer),
new OleDbParameter("@SortOrder", OleDbType.Integer)
};

op[0].Value = target.CategoryId;
op[1].Value = target.ParentId;
op[2].Value = target.TemplateId;
op[3].Value = target.Title;
op[4].Value = target.Content;
op[5].Value = (Int32)target.ContentView;
op[6].Value = target.UseSubTemplate;
op[7].Value = (Int32)target.SubOrdering;
op[8].Value = (Int32)target.Kind;
op[9].Value = target.SortOrder;

int result = OleDbHelper.ExecuteNonQuery(ConfigValue.ConnectionString, CommandType.Text, SqlStatements.CategoryUpdate, op);

return (1 == result);
}



Helper 是用的PetShop的 SQLHelper类

Access 对应字段类型如下:
CategoryId --自动编号
ParentId --长整型
TemplateId --长整型
Title --文本
Content --备注
ContentView --长整型
UseSubTemplate --是/否
SubOrdering --长整型
Kind --长整型
SortOrder --长整型



保存后 就是没反应 调试的时候
Helper里面
int val = cmd.ExecuteNonQuery(); 总是返回 0
研究了 一天了 还是没研究出来什么问题 急需 大牛 帮助啊 !! 最好邮箱233186958@qq.com
...全文
188 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pig510520 2011-05-13
  • 打赏
  • 举报
回复
我靠 还真的 顺序 原因 杯具啊 谢了 4楼哥们
kk297173176 2011-05-13
  • 打赏
  • 举报
回复
断点
边城的刀声 2011-05-13
  • 打赏
  • 举报
回复

public bool Update(CategoryInfo target)
{
OleDbParameter[] op = {

new OleDbParameter("@ParentId", OleDbType.Integer),
new OleDbParameter("@TemplateId", OleDbType.Integer),
new OleDbParameter("@Title", OleDbType.VarWChar),
new OleDbParameter("@Content", OleDbType.LongVarWChar),
new OleDbParameter("@ContentView", OleDbType.Integer),
new OleDbParameter("@UseSubTemplate", OleDbType.Boolean),
new OleDbParameter("@SubOrdering", OleDbType.Integer),
new OleDbParameter("@Kind", OleDbType.Integer),
new OleDbParameter("@SortOrder", OleDbType.Integer),
new OleDbParameter("@CategoryId", OleDbType.Integer)
};


op[0].Value = target.ParentId;
op[1].Value = target.TemplateId;
op[2].Value = target.Title;
op[3].Value = target.Content;
op[4].Value = (Int32)target.ContentView;
op[5].Value = target.UseSubTemplate;
op[6].Value = (Int32)target.SubOrdering;
op[7].Value = (Int32)target.Kind;
op[8].Value = target.SortOrder;
op[9].Value = target.CategoryId;

int result = OleDbHelper.ExecuteNonQuery(ConfigValue.ConnectionString, CommandType.Text, SqlStatements.CategoryUpdate, op);

return (1 == result);
边城的刀声 2011-05-13
  • 打赏
  • 举报
回复
参数顺序要保持一致
xiongshao1943 2011-05-13
  • 打赏
  • 举报
回复
你应该把SqlStatements.CategoryUpdate, op这两个的值输出来看看
你这样也不知道什么原因,可能是传递的参数本身就有错了呢.
LQ_651119244 2011-05-13
  • 打赏
  • 举报
回复
用一个新页面测试一下,比如单独执行一条更新的SQL语句,看有没效果。
pig510520 2011-05-13
  • 打赏
  • 举报
回复
不要 沉了啊

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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