ObjectDataSource.Insert 始终返回 -1

发布于 2024-12-15 04:22:23 字数 389 浏览 2 评论 0原文

为了获取新的行 ID,我到处寻找并尝试了似乎对其他人都有效的通用解决方案。我无法更改数据库,但我确实知道参数 VersionID 是使用范围 Identity 设置的。 SP 中的最后一行是 return(@@VersionID) 我也尝试将其放在插入的事件上,

protected void VersionDataSource_Inserted(object sender, ObjectDataSourceStatusEventArgs    e)
{
    int returnValue = (int)e.OutputParameters;

}

但它总是返回 -1,我似乎无法获取新的行 ID,我也尝试过使参数 Direction 输出作为返回值。完全不知所措,一整天都在这些废话上。

Trying to get the new row ID, I have looked everywhere and tried the common solutions that seem to work for everyone else. I cannot change the database, but I do know that parameter VersionID is set with a scope Identity. the last line in the SP is return(@@VersionID) I have also tried putting this on the inserted event

protected void VersionDataSource_Inserted(object sender, ObjectDataSourceStatusEventArgs    e)
{
    int returnValue = (int)e.OutputParameters;

}

however it always returns -1, I cannot seem to get the new row ID, I have tried making the parameter Direction output as well as returnValue. At a total loss, have spent the whole day on this crap.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

慈悲佛祖 2024-12-22 04:22:23

我建议输出参数似乎是一本字典

int returnValue = (int)e.OutputParameters["VersionID"].Value;

It seems the Outputparameters is a dictionary, I would suggest

int returnValue = (int)e.OutputParameters["VersionID"].Value;
拥有 2024-12-22 04:22:23

您还没有发布标记,但是您应该有一个定义为输出参数的参数:

<asp:Parameter Direction="Output" Name="VersionID"  Type="Int32" /> 

通过上述内容,您应该能够获得如下输出值:

protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e) 
{ 
    int id = Convert.ToInt32(e.Command.Parameter["VersionID"].Value); 
} 

You haven't posted the markup, but you should have a parameter defined as an output parameter:

<asp:Parameter Direction="Output" Name="VersionID"  Type="Int32" /> 

With the above, you should be able to get the outputted value like this:

protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e) 
{ 
    int id = Convert.ToInt32(e.Command.Parameter["VersionID"].Value); 
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文