2015-11-27 3 views
0

У меня есть проблема, которую я не могу решить, так что мне нужно спроситьВход на DataGridView автоматически

** Проблема: * У меня есть вид сетки данных, а также сделали специальный столбец для него. Я ввожу данные по колонке IDB, и я надеюсь, что столбец Имя, цена может автоматически ввод в строке, и после этого я могу ввести сумму вручную, а общая будет сумма * цена

Dim dt As New DataTable() 
dt.Columns.AddRange(New DataColumn(4) {New DataColumn("IDB", GetType(String)), New DataColumn("Name", GetType(String)), New DataColumn("Price", GetType(Integer)), New DataColumn("Amount", GetType(Integer)), New DataColumn("Total", GetType(Integer))}) 
Me.MetroGrid1.DataSource = dt 

Я должен ввести какой-то IDB для datagridview вручную и автоматически получать данные из базы данных mysql, как это сделать?

Я попытался это

Private Sub inputdata(sender As Object, e As DataGridViewCellEventArgs) Handles MetroGrid1.CellValueChanged 
     Dim dgrow As Integer = 0 


     Try 
      If MetroGrid1.Rows(baris).Cells("IDB").Value Then 
       mysqlConnection.ConnectionString = ServerString 
       mysqlConnection.Open() 
       Dim bc As MySqlDataReader 
       cmdmysql.CommandText = "SELECT * FROM product where IDB = '" + MetroGrid1.Rows(dgrow).Cells("IDB").Value + "'" 
       cmdmysql.Connection = mysqlConnection 
       bc = cmdmysql.ExecuteReader 
       If bc.HasRows Then 
        bc.Read() 
        MetroGrid1.Rows(dgrow).Cells("Name").Value = bc.Item(3) 
        MetroGrid1.Rows(dgrow).Cells("Price").Value = bc.Item(4) 
        Label3.Text = bc.Item(3) 
        Label4.Text = bc.Item(4) 

       End If 
      End If 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    End Sub 

Он может автоматически входные первые данные, но говорят, какая-то ошибка

MySql.Data.MySqlClient.MySqlException (0x80004005): Не разрешено изменения Свойство ConnectionString при подключении (state = Open). на MySql.Data.MySqlClient.ExceptionInterceptor.Throw (исключение Исключения) в MySql.Data.MySqlClient.MySqlConnection.Throw (Исключение экс) при MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString (String значения) в SCS_MetroDesign.Pembayaran .gantidata (отправитель объекта, DataGridViewCellEventArgs д): Строка 69

линии 69: mysqlConnection.ConnectionString = ServerString

Это не ошибка, когда я не использовал MetroGrid1.Rows (dgrow). Ячейки («Имя»). Значение = bc.Item (3), но без этого я не могу вводить данные автоматически, используя только IDB

Пожалуйста, помогите мне решить эту проблему, заранее спасибо

+0

Это связано с тем, что mysqlConnection u попытался передать строку соединения уже open.try, закрывая mysqlConnection перед изменением строки коннекции. –

ответ

0

Я предлагаю сначала сохранить данные в DataTable или набора данных, а затем извлекать данные из DataTable или набора данных.

Пример:

DataTable dt = new DataTable(); 
dt.Load(bc); 

, а затем использовать DT для выборки данных.

0

Ваша переменная mysqlConnection определяется где-то еще в вашем проекте, и это состояние открыто из другого соединения. Двойная проверка программы для Mysql-соединений, которая не закрывается после использования.

Или для быстрого исправления, проверьте, добавив

mysqlConnection.close() перед тем mysqlConnection.ConnectionString = ServerString

Надежда Вы Got нужен вход.

+0

Да, я пробовал это раньше, но все же ошибка t не ошибка, когда я не использовал MetroGrid1.Rows (dgrow) .Cells («Name»). Значение = bc.Item (3), но без этого я не могу автоматически вводить используя только IDB – irvank

+0

, но где на самом деле происходит eexception..в какой строке? –

+0

нормально работает ли это в первый раз? пожалуйста, покажите код, в котором вы используете входные данные функции? –

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