OleDb 命名参数的问题

jourmen 2004-04-01 07:52:13
String deleteCmd = "delete from commodityinfo where unit = ?";

OleDbCommand myCommand = new OleDbCommand(deleteCmd, myConnection);

myCommand.Parameters.Add(new OleDbParameter("?", OleDbType.Char, 12));

myCommand.Parameters["?"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

我的表的第一个字段就是unit,类型是char(12)
怎么就是删不了记录呢???

上面的代码写错了么?
...全文
51 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jourmen 2004-04-02
  • 打赏
  • 举报
回复
错误打印出来是:


没有可用的错误信息: DB_E_NOCOMMAND(0x80040E0C)。


给了这么一个解释:(
stoway 2004-04-02
  • 打赏
  • 举报
回复
to: jourmen(Jour T. Donald)
不要这么显示错误,那样并不知道错误在什么地方,用
try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "提示:已删除记录<br>" + deleteCmd;
Message.Style["color"] = "red";
}
catch (OleDbException ex)
{
Message.InnerHtml = ex.Message;
Message.Style["color"] = "red";
}
或者直接在catch中用throw(ex);把错误信息显示出来

dulkernetbug 2004-04-02
  • 打赏
  • 举报
回复
String deleteCmd = "delete from commodityinfo where unit = @unit";

OleDbCommand myCommand = new OleDbCommand(deleteCmd, myConnection);

myCommand.Parameters.Add(new OleDbParameter("@unit", OleDbType.Char, 12));

myCommand.Parameters["@unit"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();


这个应该没错啊
jourmen 2004-04-02
  • 打赏
  • 举报
回复
应该还是sql语句参数的问题,这是我后面加的try来捕捉异常

try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "提示:已删除记录<br>" + deleteCmd;
Message.Style["color"] = "red";
}
catch (OleDbException)
{
Message.InnerHtml = "错误:未能删除记录";
Message.Style["color"] = "red";
}

删除时候提示:错误:未能删除记录


太郁闷了:(
stoway 2004-04-02
  • 打赏
  • 举报
回复
如果仅仅是这个错误不一定是参数的错误
stoway 2004-04-01
  • 打赏
  • 举报
回复
String deleteCmd = "delete from commodityinfo where unit = ?";

OleDbCommand myCommand = new OleDbCommand(deleteCmd, myConnection);

myCommand .Parameters.Add("@p1", OleDbType.Char, 12).Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();
这样再试试看可不可以
--
还有确认是什么错误,可以把错误帖出来看看吗?如果没有抛出异常也可能是你传进去的值的问题
jourmen 2004-04-01
  • 打赏
  • 举报
回复
不行的
:(

我是在datagrid里删除数据的

用oledb连接的db2数据库

怎么就是不可以呢???
连接sql server就可以了???


郁闷:(


大家帮帮我:(
stoway 2004-04-01
  • 打赏
  • 举报
回复
示例:
string sql = "SELECT * FROM Table1 WHERE Field1 LIKE ?";
OleDbCommand cmd = new OleDbCommand(sql, oracleConn);
cmd.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a";
OleDbDataReader dr = cmd.ExecuteReader();
zhpsam109 2004-04-01
  • 打赏
  • 举报
回复
关于参数,你可以查帮助!
stoway 2004-04-01
  • 打赏
  • 举报
回复
String deleteCmd = "delete from commodityinfo where unit = @unit";

OleDbCommand myCommand = new OleDbCommand(deleteCmd, myConnection);

myCommand.Parameters.Add(new OleDbParameter("@unit", OleDbType.Char, 12));

myCommand.Parameters["@unit"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

62,039

社区成员

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

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

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

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