اذهب إلى المحتوى

السؤال

نشر

على تطبيق vb.net أريد ربط قاعدة بيانات من نوع Mysql مع كائن dataSet، وقمت بالآتي:

فتح اتصال عن طريقoldeb:

con.Open()
adaptadordatos.Fill(conjuntoDatos, "Alumnos")
con.Close()

جلب البيانات:

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Dim Conexion As New MySql.Data.MySqlClient.MySqlConnection
            Dim CadenaSQL As String = "SELECT * FROM Alumnos ORDER BY nombre"
            Dim CadenaConexion As String = "Data Source=localhost;" & _
                                           "Database=" & "NuevaBD" & ";" & _
                                           "User Id=root;Password="
            Dim Comando As New MySql.Data.MySqlClient.MySqlCommand(CadenaSQL)
            Conexion = New MySql.Data.MySqlClient.MySqlConnection(CadenaConexion)

            Try
                Dim conjuntoDatos As New DataSet()
            Conexion.Open()
            'here dataset i dont know how it
            'Comando.Fill(conjuntoDatos, "Alumnos")
            Conexion.Close()

            Dim tabla As DataTable
            tabla = conjuntoDatos.Tables("Alumnos")
            Dim fila As DataRow
            Me.ListaAlumnos.Items.Clear()
            For Each fila In tabla.Rows
                ' Muestra los datos en un ListBox
                Me.ListaAlumnos.Items.Add(fila.Item("Nombre") & " " & fila.Item("Apellidos"))
            Next
        Catch ex As MySql.Data.MySqlClient.MySqlException
            MsgBox("No se ha podido establecer " & vbCrLf & _
                      "la conexión con la base de datos.", MsgBoxStyle.Critical)
        Finally

            Select Case Conexion.State
                Case ConnectionState.Open
                    Conexion.Close()
            End Select
        End Try
    End Sub

لكن الكود لا يعمل، كيف أجعله يعمل؟

Recommended Posts

  • 0
نشر

وظيفة ()Fill خاصة بـ DataAdapter، ونستعملها لملئ جدول مؤقت على DataSet انطلاقا من قاعدة البيانات، بالطريقة التالية:

adaptadordatos.Fill(conjuntoDatos, "Alumnos")

لذا يجب عليك إنشاءها:

Dim myAdapter As MySqlDataAdapter = New MySqlDataAdapter(CadenaSQL, Conexion)
myAdapter.Fill(conjuntoDatos, "Alumnos")

وهذا مثال كامل لاستعمال DataSet على تطبيق Vb.net:

Private m_DataSet As DataSet

Private Sub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles MyBase.Load
  ' Build the DataSet.
  m_DataSet = New DataSet("Student Scores")

  ' Build the Students table.
  Dim dt_students As New DataTable("Students")
  m_DataSet.Tables.Add(dt_students)
  dt_students.Columns.Add("StudentId", GetType(Integer))
  dt_students.Columns.Add("FirstName", GetType(String))
  dt_students.Columns.Add("LastName", GetType(String))

  ' Build the TestScores table.
  Dim dt_testscores As New DataTable("TestScores")
  m_DataSet.Tables.Add(dt_testscores)
  dt_testscores.Columns.Add("StudentId", GetType(Integer))
  dt_testscores.Columns.Add("TestNumber", GetType(Integer))
  dt_testscores.Columns.Add("Score", GetType(Integer))

  ' Populate the Students table.
  Dim student_data(2) As Object
  student_data(0) = 1
  student_data(1) = "Amy"
  student_data(2) = "Anderson"
  dt_students.Rows.Add(student_data)

  student_data(0) = 2
  student_data(1) = "Bob"
  student_data(2) = "Baker"
  dt_students.Rows.Add(student_data)

  ' Code for other insertions deleted...

  ' Populate the TestScores table.
  Dim testscores_row As DataRow
  ' Student 1.
  testscores_row = dt_testscores.NewRow()
  dt_testscores.Rows.Add(testscores_row)
  testscores_row.Item("StudentId") = 1
  testscores_row.Item("TestNumber") = 1
  testscores_row.Item("Score") = 98

  testscores_row = dt_testscores.NewRow()
  dt_testscores.Rows.Add(testscores_row)
  testscores_row.Item("StudentId") = 1
  testscores_row.Item("TestNumber") = 2
  testscores_row.Item("Score") = 94

  ' Code for other insertions deleted...

  ' Bind the DataGrid to the DataSet.
  DataGrid1.DataSource = m_DataSet
End Sub

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...