使用刚刚创建的ID重定向

时间:2011-10-12 19:36:36

标签: vb.net redirect

我需要根据刚刚创建的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一直在页面底部。我唯一能想到的就是将重定向放到使用中,但我不能,因为我需要插入其他表,在其余的插入之前重定向是没有意义的

2 个答案:

答案 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"))