我有一些 sqldatasource 问题。我想在数据库表中插入 3 个值,然后获取自动递增的 ID。我已经阅读了有关 scope_identity 的所有内容,但我无法正确构建所有内容。我们付钱给开发人员来建立我们的网站,但我已经接管了编程,所以我正在使用现有代码并尝试修改。
这是用户单击时我在子例程中的内容:
dim firstlike As Integer = 1
likeslbl.Text = firstlike
sqlvoted.InsertParameters.Clear()
sqlvoted.InsertCommand = "INSERT INTO urls (url,likes,mlsid) SELECT ?url,?likes,?mlsid; SELECT SCOPE_IDENTITY() AS @newID"
sqlvoted.InsertParameters.Add("url", System.Data.DbType.String, url)
sqlvoted.InsertParameters.Add("likes", System.Data.DbType.String, firstlike.ToString)
sqlvoted.InsertParameters.Add("mlsid", System.Data.DbType.String, newmlsid)
sqlvoted.Insert()
这是我的sqldatasource:
<asp:SqlDataSource id="sqlvoted" runat="server" ConnectionString="<%$ConnectionStrings:Mym6pConnection %>"
ProviderName="MySql.Data.MySqlClient">
<SelectParameters>
<asp:Parameter Direction="Output" Name="newID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
如果我删除 insertCommand 的“SELECT SCOPE_IDENTITY() AS @newID”部分,一切正常。我只是不确定如何将其与其余部分集成。我猜它与双重“选择”语句有关。不过,我不明白“SELECT ?url,?likes,?mlsid”语句是如何工作的。在我看过的其他任何地方,命令的一部分都是“VALUES @url,@likes,@mlsid”,但这不起作用。这里的任何帮助将不胜感激。
谢谢,杰瑞德