免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1528 | 回复: 0
打印 上一主题 下一主题

.net mysql procedure, 取得Identity值到SourceColumn的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-06 15:36 |只看该作者 |倒序浏览
1. 存储过程
CREATE PROCEDURE `test`.`usp_replyinsert`( out p_replyid int, p_itemid int, p_replytext text, p_createuserid int, p_createdate datetime)
begin
insert into `reply`(
replyid,
itemid,
replytext,
createuserid,
createdate
)
values (
p_replyid,
p_itemid,
p_replytext,
p_createuserid,
p_createdate
) ;
SELECT LAST_INSERT_ID() into p_replyid;

Procedure是好的, 可以取得p_replyid值从MySqlCommand.Paramters["p_replyid"].Value;
但是, 我需要的SourceColumn能取得值:

2. Code:
MySqlCommand insertCom = new MySqlCommand("usp_ReplyInsert", conn);
insertCom.CommandType = CommandType.StoredProcedure;

MySqlParameter para = insertCom.Parameters.Add( "p_replyid", MySqlDbType.Int32 );
para.Direction = ParameterDirection.Output;
para.SourceColumn = "replyid"; // I set sourcecolumn for the identity field, but get DbNull after insert.

para = insertCom.Parameters.Add( "p_itemid", MySqlDbType.Int32 );
para.SourceColumn = "itemid";

para = insertCom.Parameters.Add( "p_replytext", MySqlDbType.VarChar, 100 );
para.SourceColumn = "replytext";

para = insertCom.Parameters.Add( "p_createuserid", MySqlDbType.Int32 );
para.SourceColumn = "createuserid";

para = insertCom.Parameters.Add( "p_createdate", MySqlDbType.Datetime);
para.SourceColumn = "createdate";

if( conn.State == ConnectionState.Closed )
conn.Open();

MySqlDataAdapter sda = new MySqlDataAdapter();
sda.InsertCommand = insertCom;

sda.Update( dataSet );

object outvalue = dataSet.Tables[0].Rows[1]["replyid"]; // outvalue 是 DBNull;

有人知道这个吗?
谢谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP