【问题标题】:Using LINQ and a dropdownlist to enter a new record into an SQL Database使用 LINQ 和下拉列表将新记录输入 SQL 数据库
【发布时间】:2012-04-19 19:34:47
【问题描述】:

大家好,我是新手,我正在为我的 asp.net 网站苦苦挣扎,我们的职责是制作兽医手术预订系统。

我有一个包含 4 个字段的 asp.net 页面,其中一个字段根据下面的 vb 代码在页面加载时填充。

我正在尝试获取下拉列表控件的选定值(或文本)并将其用作记录中第一个字段的值,但是每次我在下拉列表中选择第二个或第三个值并单击提交时按钮创建的新记录将插入下拉列表中的第一个值。

希望你能帮忙。

Imports System.Linq
Imports System.Data.Linq

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Dim db As New LinQTASK5DataContext
        Dim mu As MembershipUser = Membership.GetUser()
        Dim g As Guid = mu.ProviderUserKey
        Session.Item("uGUID") = g.ToString
        Dim animal = From a In db.pets Where g = a.userGuid Select a.petName
        Dim valSelec = animal
        DropDownList1.DataSource = animal
        DropDownList1.DataBind()
        RangeValidator1.MinimumValue = DateTime.Now.ToString("dd/MM/yyyy")
        RangeValidator1.MaximumValue = New DateTime(2100, 1, 1).ToString("dd/MM/yyyy")
    End Sub
    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        Dim db As New LinQTASK5DataContext
        Dim b As New booking With {.petName = DropDownList1.SelectedItem.Text, .VetID = cmbVet.Text, .Date = lblDate.Text, .slotID = cmbSlot.Text}
        db.bookings.InsertOnSubmit(b)
        db.SubmitChanges()
        Response.Redirect("~/customers/viewbookings.aspx")
    End Sub
End Class

【问题讨论】:

    标签: asp.net sql vb.net linq


    【解决方案1】:

    您需要更改 Page_Load 函数并测试 Postback:

    if not IsPostBack then
       //do your all your  initialization stuff
    end if
    

    如果您不这样做,那么当您单击提交时,所有代码都会再次运行,并且您的下拉列表会重置为其初始值。 if 语句确保您仅在页面首次加载时进行初始化,以便获得新值。

    【讨论】:

      【解决方案2】:

      每次页面加载时,您都会重新绑定下拉菜单。您应该将绑定封装在 if 语句中。

      If Not Page.IsPostBack Then
         // your code here
      End If
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多