导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

删除不了记录:(帮帮我吧

jourmen IBM 架构师  2004-04-03 10:54:32
我的代码:
String deleteCmd = "delete from staff where id = ?";

OleDbCommand myCommand = new OleDbCommand(deleteCmd, myConnection);
myCommand.Parameters.Add(new OleDbParameter("?", OleDbType.SmallInt, 2));
myCommand.Parameters["?"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex]; ----》调试的时候这里的值捕捉到了!!!

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

上面的代码有错误么?

他就是删除不了
...全文
9 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhpsam109 2004-04-03
myCommand.Parameters.Add(new OleDbParameter("@id", OleDbType.SmallInt, 2));
myCommand.Parameters["@id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
这样改,同时,你要监视MyDataGrid.DataKeys[(int)e.Item.ItemIndex];的值,注意你给的长度2是不是太短了!
回复
newnan 2004-04-03
e.Item.ItemIndex是这一页的索引号
不是你数据库的id
在datagrid里面加上DataKeyField="你的表中的关键字段"
然后
dg.DataKeys[e.Item.ItemIndex]才是从数据库读出的记录编号
回复
TCat 2004-04-03
在datagrid里面加上DataKeyField="你的表中的关键字段"
回复
46539492 2004-04-03
你是说数据库里面的记录删除不了吗?还是你删除记录后显示的问题?如果是前者,可能是你的sql语句有问题,如果是后则要删除记录后再绑定一下
或者用这个试试
String deleteCmd = "delete from staff where id = ?"
introw=e.item.itemindex
?=dgsort.datakeys.item(introw)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()

在datagrid里面加上DataKeyField="?"

回复
bitsbird 2004-04-03
删除以后绑定了吗?
回复
chsj2000 2004-04-03
代码执行有错误吗?
如果执行没有错误的话,在page_load(Object src,EventArgs e)里面加上:
if(!IsPostBack) BindGrid();
当然BindGrid()就是一调用数据库并绑定到DataGrid的方法。
回复
lr2651 2004-04-03
那就散分吧
回复
活靶子哥哥 2004-04-03
打印你的sql语句看是否有错 在数据库内运行试试看能否删除
回复
bitsbird 2004-04-03
也就是说在前台要绑定了记录
回复
jourmen 2004-04-03
谢谢大家,这个问题已经解决了

但是对OleDb怎么传递参数还是不明白
是换了个方式做的:(
回复
liuyu202 2004-04-03
同意楼上!
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告