我需要根据刚刚创建的ID重定向我的页面。 这是我的insert语句,它生成我需要为重定向获取的ID。
'SQL Insert: Product table
Dim sqlInsertProduct As String = "INSERT INTO Product
(ProductName, Status, CreateDate, ModifyDate,
CreateUser, ModifyUser, Price)
VALUES (@ProductName, @Status ,getdate(),
getdate(), @CreateUser, @ModifyUser, @Price)
;SELECT SCOPE_IDENTITY();"
Using cmd As New SqlCommand(sqlInsertProduct, cn)
Dim ProductID As String
cmd.Parameters.Add(New SqlParameter("@ProductName", txtNewProductName.Text))
cmd.Parameters.Add(New SqlParameter("@Status", StatusCheckbox.Checked))
cmd.Parameters.Add(New SqlParameter("@Price", txtPrice.Text))
cmd.Parameters.Add(New SqlParameter("@CreateUser",
System.Web.HttpContext.Current.User.Identity.Name))
cmd.Parameters.Add(New SqlParameter("@ModifyUser",
System.Web.HttpContext.Current.User.Identity.Name))
cn.Open()
ProductID = cmd.ExecuteScalar()
End Using
Response.Redirect("Product/Default.aspx?id=" + ProductID)
在3个其他表插入3个不同的表之后,Response.Redirect一直在页面底部。我唯一能想到的就是将重定向放到使用中,但我不能,因为我需要插入其他表,在其余的插入之前重定向是没有意义的
答案 0 :(得分:0)
ExecuteScalar
返回您插入的ID。 e.g。
Dim sqlInsertProduct As String = "INSERT INTO Product
(ProductName, Status, CreateDate, ModifyDate,
CreateUser, ModifyUser, Price)
VALUES (@ProductName, @Status ,getdate(),
getdate(), @CreateUser, @ModifyUser, @Price);
SELECT @@IDENTITY AS InsertID;
...
Dim ProductID as String = cmd.ExecuteScalar();
Response.Redirect("Product/Default.aspx?id=" & ProductID)
答案 1 :(得分:0)
我将ProductID存储到会话中并将其用于重定向。
Dim sqlInsertProduct As String = "INSERT INTO Product (ProductName, Status, CreateDate,
ModifyDate, CreateUser, ModifyUser, Price)
VALUES (@ProductName, @Status,
getdate(),getdate(), @CreateUser, @ModifyUser,
@Price);SELECT SCOPE_IDENTITY();"
Using cmd As New SqlCommand(sqlInsertProduct, cn)
Dim ProductID As String
cmd.Parameters.Add(New SqlParameter("@ProductName", txtNewProductName.Text))
cmd.Parameters.Add(New SqlParameter("@Status", StatusCheckbox.Checked))
cmd.Parameters.Add(New SqlParameter("@Price", txtPrice.Text))
cmd.Parameters.Add(New SqlParameter("@CreateUser",
System.Web.HttpContext.Current.User.Identity.Name))
cmd.Parameters.Add(New SqlParameter("@ModifyUser",
System.Web.HttpContext.Current.User.Identity.Name))
cn.Open()
ProductID = cmd.ExecuteScalar()
Session("ProductID") = ProductID
Dim Product As String = Session("ProductID")
End Using
cn.Close()
** 页面上的其他插页 **
Response.Redirect("Product/Default.aspx?id=" + Session("ProductID"))