Заполните данные в раскрывающемся списке таблицей mysql в aspx vb, используя класс

Я пытаюсь загрузить раскрывающийся список, связанный с таблицей в mysql, в веб-форме asp.net в vb. Я использую класс со следующим кодом:

Public Class ClCountries
    Public Function Read(ByVal Opcion As Integer) As DataTable

        Dim cnn As New MySqlConnection(ConfigurationManager.ConnectionStrings("cnnPortalSmart").ConnectionString)
        Dim dt As New DataTable
        Try
            Dim cmd As New MySqlCommand("PA_COUNTRIES_SELECT", cnn)
            cmd.CommandType = CommandType.StoredProcedure

            cmd.Parameters.AddWithValue("@Opcion", Opcion)

            cnn.Open()
            dt.Load(cmd.ExecuteReader(), LoadOption.OverwriteChanges)
            cnn.Close()
        Catch ex As Exception
            Dim msgError As String
            msgError = ex.Message.ToString()
            cnn.Close()
        End Try
        Return dt
    End Function
End Class

Он вызывается из Page_Load () с помощью этого метода:

Sub LoadCountries()
    Try 
        Dim dv As New DataView(New ClCountries().Read(1)) 
        ddlCountry.DataSource = dv 
        ddlCountry.DataTextField = "Name" 
        ddlCountry.DataValueField = "ID" 
        ddlCountry.DataBind() 
        Dim li As New ListItem("Select Country", "0") 
        ddlCountry.Items.Insert(0, li) 
    Catch ex As Exception 
    End Try 
End Sub

Строка подключения в aspx:

<connectionStrings>    
    <add name = "cnnPortalSmart" connectionString = "Data Source=IP_NUMBER;Initial Catalog=SCHEMA_NAME; User ID=root;Password=XXXX;" providerName = "MySql.Data.MySqlClient" />  
</connectionStrings>

Спасибо.

в чем вопрос? какие-то проблемы? какие-то исключения?

Vinit 11.07.2018 23:37

Какие проблемы у вас возникают с этим кодом? Что не работает? Есть вещи, которые я мог бы сделать по-другому или более аккуратно, но в этом коде явно ничего не сломано.

Joel Coehoorn 11.07.2018 23:37

Простите. проблема в том, что в раскрывающемся списке не отображаются данные.

Day 11.07.2018 23:54

Я отредактировал новый код в вопросе. Вот как мы это делаем ... читать код в комментариях больно;) Что будет, если убрать Try / Catch?

Joel Coehoorn 11.07.2018 23:58

Спасибо. Если я удалю try / catch в классе, New ListItem в «Select Country», «0») не будет отображать текст «select country» в методе.

Day 12.07.2018 00:09

Я нашел несколько возможных решений для отображения элемента, добавленного из ListItem, но я хочу, чтобы вы включили как разметку DDL, так и метод Page_Load, на всякий случай.

Tetsuya Yamamoto 12.07.2018 04:37
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
6
116
2

Ответы 2

Надеюсь, это поможет вам

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not Me.IsPostBack Then
        Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
        Using con As New SqlConnection(constr)
            Using cmd As New SqlCommand("SELECT CustomerId, Name FROM Customers")
                cmd.CommandType = CommandType.Text
                cmd.Connection = con
                con.Open()
                ddlCustomers.DataSource = cmd.ExecuteReader()
                ddlCustomers.DataTextField = "Name"
                ddlCustomers.DataValueField = "CustomerId"
                ddlCustomers.DataBind()
                con.Close()
            End Using
        End Using
        ddlCustomers.Items.Insert(0, New ListItem("--Select Customer--", "0"))
    End If
End Sub

Я решил это, изменив строку подключения на:

<connectionStrings>
<add name = "cnnPortalSmart" connectionString = "server=XXXX;user id=XXXX;password=XXXXX!;persistsecurityinfo=True;database=XXXXX;SslMode=none" providerName = "MySql.Data.MySqlClient"/>
</connectionStrings>

Другие вопросы по теме