2016-03-04 3 views
1

У меня есть пользовательская форма, в которой они могут выбрать некоторые значения из списка флажков & значений, выбранных в этих магазинах в базе данных в форме li. Теперь, когда пользователи хотят обновить форму, они должны иметь возможность видеть значения, которые они выбрали ранее.Получить значения checkbx, выбранные из базы данных

вот мой код.

Вставка Форма

Private Sub PopulateServices() 
     Using conn As New MySqlConnection() 
      conn.ConnectionString = ConfigurationManager _ 
       .ConnectionStrings("conio").ConnectionString() 
      Using cmd As New MySqlCommand() 
       cmd.CommandText = "select * from services" 
       cmd.Connection = conn 
       conn.Open() 
       Using sdr As MySqlDataReader = cmd.ExecuteReader() 
        While sdr.Read() 
         Dim item As New ListItem() 
         item.Text = sdr("serviceName").ToString() 
         item.Value = sdr("serviceName").ToString() 
         'item.Selected = Convert.ToBoolean(sdr("IsSelected")) 
         servicesList.Items.Add(item) 
        End While 
       End Using 
       conn.Close() 
       End Using 
      End Using 
    End Sub 

Dim selectedServices As String = String.Empty 
     For Each chk As ListItem In servicesList.Items 
      If chk.Selected = True Then 
       selectedServices &= "<li>" + chk.Text + "</li>" 
      End If 
     Next 

Try 
      Dim str1 As String = "INSERT INTO hospitals (`hospitalID`,`username`, `password`) values ('" + ID + "', '"selectedServices.ToString + "', '" + mobileNumber + "', '" + membersAutoPassword.Text + "')" 

      Dim str2 As MySqlDataReader 
      Dim adapter As New MySqlDataAdapter 
      Dim command As New MySqlCommand 
      command.CommandText = str1 
      command.Connection = con 
      adapter.SelectCommand = command 
      con.Open() 
      str2 = command.ExecuteReader 
      con.Close() 
      Response.Redirect("business-added.aspx") 
     Catch ex As Exception 
      Response.Write(ex) 
     End Try 

На странице профиля пользователя после входа в систему, они должны быть в состоянии увидеть, какие варианты они выбрали. Следовательно, существует возможность для пользователей, чтобы обновить свои данные снова

ОБНОВЛЕНО Профиль пользователя Страница

Private Sub list_business_hospital_Load(sender As Object, e As EventArgs) Handles Me.Load 
     If Not IsPostBack Then 
       Try 
        Dim str As String = "SELECT * FROM hospitals WHERE username='" + Server.HtmlEncode(Request.Cookies("chkusername").Value) + "';" 
        con.Open() 
        Dim cmd As New MySqlCommand(str, con) 
        Dim da As New MySqlDataAdapter(cmd) 
        Dim dt As New DataTable 
        Dim lblservice As New Label 
        For Each chk As ListItem In servicesList.Items 
         If chk.Selected = True Then 
          lblservice.Text = String.Concat(lblservice.Text + ",", chk.Value) 

         End If 
        Next 

        da.Fill(dt) 
        con.Close() 
        TextId.Text = dt.Rows(0)("hospitalID").ToString 
    Catch ex As Exception 
        Response.Write(ex) 
       End Try 

Private Sub PopulateServices() 
     Using conn As New MySqlConnection() 
      conn.ConnectionString = ConfigurationManager _ 
       .ConnectionStrings("conio").ConnectionString() 
      Using cmd As New MySqlCommand() 
       cmd.CommandText = "select * from services" 
       cmd.Connection = conn 
       conn.Open() 
       Using sdr As MySqlDataReader = cmd.ExecuteReader() 
        While sdr.Read() 
         Dim item As New ListItem() 
         item.Text = sdr("serviceName").ToString() 
         item.Value = sdr("serviceName").ToString() 
         'item.Selected = Convert.ToBoolean(sdr("IsSelected")) 
         servicesList.Items.Add(item) 
        End While 
       End Using 
       conn.Close() 
      End Using 
     End Using 
    End Sub 

Private Sub updateInfo_Click(sender As Object, e As EventArgs) Handles updateInfo.Click 
     Try 
      Dim con As New MySqlConnection 
      Dim query As New MySqlCommand 
      con.ConnectionString = ConfigurationManager _ 
       .ConnectionStrings("conio").ConnectionString() 
      query.Connection = con 
      con.Open() 

      Dim selectedServices As String = String.Empty 
      For Each chk As ListItem In servicesList.Items 
       If selectedServices.Contains("<li>" & chk.Text & "</li>") Then 
        'display item as selected 
        chk.Selected = True 
       End If 

      Next 

      query.CommandText = "UPDATE hospitals SET name = '" + businessName.Text + "', contactPerson = '" + contactPerson.Text + "', websiteName = '" + websiteName.Text + "', email = '" + emailName.Text + "', phone1 = '" + phone1.Text + "', phone2 = '" + phone2.Text + "', mobileNumber = '" + mobile.Text + "', buildingName = '" + buildingName.Text + "', streetName = '" + address.Text + "', landmark = '" + landmark.Text + "', areaName = '" + areaName.Text + "', city = '" + suburb.Text + "', state = '" + state.Text + "', zipCode = '" + zip.Text + "', overview = '" + overview.Text + "', registration = '" + regNo.Text + "', establishment = '" + foundation.Text + "', founder = '" + founderName.Text + "', generalBed = '" + GeneralBeds.Text + "', icuBed = '" + ICU.Text + "', consultancyFees = '" + consultinfees.Text + "', mondayFrom = '" + mondayFrom.Text + "', mondayTo = '" + mondayTo.Text + "', tuesdayFrom = '" + tuesdayFrom.Text + "', tuesdayTo = '" + tuesdayTo.Text + "', wednesdayFrom = '" + wedFrom.Text + "', wednesdayTo = '" + wedTo.Text + "', thursdayFrom = '" + thursdayFrom.Text + "', thursdayTo = '" + thursdayTo.Text + "', fridayFrom = '" + fridayFrom.Text + "', fridayTo = '" + fridayTo.Text + "', saturdayFrom = '" + saturdayFrom.Text + "', saturdayTo = '" + saturdayTo.Text + "', sundayFrom = '" + sundayFrom.Text + "', sundayTo = '" + sundayTo.Text + "', visitFrom = '" + visitFrom.Text + "', visitTo = '" + visitTo.Text + "', bestKnownFor = '" + bestknowFor.Text + "' WHERE hospitalID = '" + TextId.Text + "'" 
      query.ExecuteNonQuery() 
      con.Close() 
      Response.Write("<script language='javascript'>alert('Information updated successfully.');</script>") 
     Catch ex As Exception 
      Response.Write(ex) 
     End Try 
    End Sub 
+0

Одно уточнение, я хотел бы спросить здесь. Вы хотите отображать флажки службList, уже выбранные на странице профиля пользователя? Я не видел, чтобы вы заполнили этот список флажков на этой странице. –

+0

одно предложение, есть ли конкретная причина, по которой вы не используете Entity Framework или аналогичную для взаимодействия с вашей базой данных. – JustLearning

+0

@PiyushKhatri yes На странице профиля также пользователь должен иметь возможность выбирать службы. У меня есть это в моем коде, но здесь я не думаю, что это нужно для публикации, так как сообщение доходит до длинного –

ответ

0

Пожалуйста, проверьте ниже,

'Here I assume that, you will call PopulateServices to populate servicesList checkbox list 
PopulateServices() 

'You didn't mention fieldName, so I assume that field in database is : 
'savedServices - This will be li tags like, <li>item 1</li><li>item 2</li> 

'Now loop through all items within checkbox list 
For Each chk As ListItem In servicesList.Items 
    'You need to check whether this item saved in database or not? 
    'If item already saved in database, display as selected 
    If savedServices.Contains("<li>" & chk.Text & "</li>") Then 
     'display item as selected 
     chk.selected = true 
    End If 
Next 
+0

Нет, это не работает –

+0

Это должно работать, можете ли вы отлаживать код и пытаться выяснить, что именно происходит? Я тестировал выше код. –

+0

Я думаю, вы разместили код в неправильном месте. Почему вы разместили его в обновленной информации. Вы хотите отображать флажки, когда они отображаются. Так что это должно быть в загрузке страницы. –

Смежные вопросы