2014-12-11 3 views
-4
Private Sub View_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    ''Search All data 

    Dim Reader As MySqlDataReader 
    Dim Query As String 

    Try 
     myConn.Open() 


     Query = "SELECT*FROM datainfo" 
     myComman = New MySqlCommand(Query, myConn) 

     Reader = myComman.ExecuteReader 

     While Reader.Read 
      Dim sName = Reader.GetString("StudentName") 
      ComboBox1.Items.Add(sName) 
     End While 

    Catch ex As Exception 
     MessageBox.Show(ex.Message) 

    Finally 
     myConn.Dispose() 

    End Try 
+2

Ошибка кажется довольно четкой. Соединение не является открытым и действительным, когда вы пытаетесь его использовать. Похоже, вы используете объекты базы данных из большего объема, что обычно плохо. Этот метод должен создавать и хранить объекты базы данных, которые он использует внутри, поэтому ничто вне области видимости не может изменять состояние этих объектов. – David

+0

В чем вопрос? –

+0

ohh..1 сейчас я получаю это Спасибо –

ответ

0

Способ объявления вашего соединения для передачи данных myConn не завершен. Будет много примеров того, как это сделать с быстрым поиском Google. Если у вас есть соединение, определенное в файле конфигурации будет быть что-то вроде:

Dim myConn as New SqlConnection(configurationManager.ConnectionStrings("MyConn").ConnectionString) 

На несвязанной ноте, вы хотите, чтобы закрыть соединение с базой данных и распоряжаться командой. Так

Finally 
    myConn.close() 
    myComman.dispose() 

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

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