2013-04-08 3 views
0

Я пытаюсь разрешить пользователю выбирать свой семейный статус, который обновит поле в базе данных. Это нормально, когда пользователь впервые в первый раз, но если они хотят обновить его снова, он не будет обновляться.Обновление базы данных asp.net из выпадающего списка

Если я хочу выбрать источник данных, если они хотят обновить, им не будут предоставлены какие-либо другие параметры в другом DDL, которые были выбраны в первый раз.

*ASPX*

<asp:DropDownList ID="DDLMarital" runat="server" TabIndex="1"> 
       <asp:ListItem Value = "Single" Text = "Single">Single</asp:ListItem> 
       <asp:ListItem Value = "Married" Text = "Married">Married</asp:ListItem> 
       <asp:ListItem Value = "Separated" Text = "Separated">Separated</asp:ListItem> 
       <asp:ListItem Value = "Divorced" Text = "Divorced">Divorced</asp:ListItem> 
      </asp:DropDownList> 

** * *ASPX.VB* ****

'binding... 

Protected Sub Page_Load (отправитель As Object, е Как System.EventArgs) Ручки Me.Load

Dim dvSql4 As DataView = 
DirectCast(SqlMarital.Select(DataSourceSelectArguments.Empty), DataView) 
    For Each drvSql4 As DataRowView In dvSql4 
     DDLMarital.Text = drvSql4("Marital_Status").ToString() 
    Next 

End Sub

«обновление базы данных, когда кнопка "Next" является щелкнул Protected Sub BtnNext_Click (отправитель As Object, е Как System.EventArgs) Ручки BtnNext.Click

Dim con As New SqlConnection 
    Dim cmd As New SqlCommand 

    con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\scrummingit2.mdf;Integrated Security=True;User Instance=True" 
    con.Open() 

    cmd.Connection = con 
    cmd.CommandText = ("UPDATE Student_Personal_Details SET Marital_Status = @Marital WHERE Student_No = @StudentNo") 

    Dim maritalParam As New SqlParameter("@Marital", DDLMarital.Text) 
    Dim studentNoParam As New SqlParameter("@StudentNo", lblEnrolmentStudentNumber.Text) 

    lblEnrolmentStudentNumber.Text = Session("Student") 

    cmd.Parameters.Add(maritalParam) 
    cmd.Parameters.Add(studentNoParam) 

    cmd.ExecuteNonQuery() 

    con.Close() 

Конец Sub

Может ли кто-нибудь помочь? Отчаяние теперь после нескольких дней отсутствия ответов на Google.

+0

вы получаете любую ошибку ?? – user1102001

+0

никаких ошибок. просто продолжается, как ожидалось, кроме базы данных, не обновляющейся – Mark

+0

, вы можете проверить с помощью sql-профайлера, что проходит, когда вы выполняете запрос – user1102001

ответ

0

Вы должны проверить PostBack и назначить выбранное значение, только если это не PostBack.

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack 
     Dim dvSql4 As DataView = 
    DirectCast(SqlMarital.Select(DataSourceSelectArguments.Empty), DataView) 
     For Each drvSql4 As DataRowView In dvSql4 
      DDLMarital.Text = drvSql4("Marital_Status").ToString() 
     Next 
    End If 
End Sub 

выбор пользователя в настоящее время игнорируется, поскольку значение получает сброс на каждом Load

+0

благодаря @nunespascal! он отлично работает! сейчас немного меньше внимания. – Mark

+0

Добро пожаловать! :-) – nunespascal