我有一些sqldatasource問題。我想在數據庫表中插入3個值,然後得到自動遞增的ID。我已經閱讀了關於scope_identity的所有內容,但是我在正確構造所有內容時遇到了困難。我們支付開發人員來構建我們的網站,但是我已經接管了編程,因此我正在使用現有代碼並嘗試修改。VB.NET sqlatasource檢索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>
一切正常,如果我刪除「SELECT SCOPE_IDENTITY()AS @ insertCommand的newID「部分。我只是不確定如何將其與其餘部分整合在一起。我猜它與雙「select」語句有關。不過,我不明白「SELECT?url,?likes,?mlsid」語句是如何工作的。我查看過的其他地方已經是「VALUES @ url,@ likes,@ mlsid」,但這不起作用。任何援助在這裏將不勝感激。
謝謝, 賈裏德
我可以將輸出參數作爲上面的sqlvoted.InsertParameters.Add語句的一部分與其餘參數一起添加嗎?如果是這樣,我的命令應該是什麼樣子? –