2013-11-28 2 views
0

Мне недавно нужно было загружать данные в gridview в потоке, проблема в том, что когда я пытаюсь переместить содержимое к нему, я получаю сообщение об ошибке, которое невозможно, поиск в Интернете я нашел некоторые решения, как ThreadHelperClass не получить больше успеха, если они могут оценить, могут ли они помочь мне, спасибо.Загрузка данных в gridview внутри потока

следующий код:

trediExecucao = new Thread(new ThreadStart(delegate 
       { 
        conn.Open(); 
        SqlDataAdapter adapter = new SqlDataAdapter(); 
        adapter.SelectCommand = cmd; 

        dataSet = new DataSet(); 
        adapter.Fill(dataSet); 

        conn.Dispose(); 
        cmd.Dispose(); 
        adapter.Dispose(); 
        if (dataSet != null && dataSet.Tables != null && dataSet.Tables[0] != null) 
        { 
         dt1.DataSource = dataSet; 
         linhas = dataSet.Tables[0].Rows.Count.ToString(); 
         dt1.DataMember = dataSet.Tables[0].TableName; 

         dataSet.Dispose(); 
        } 
        btnExecutar.Image = pictureBox1.Image; 
        rodando = false; 
       })); 

       trediExecucao.Start(); 

ответ

0

ли это быть в потоке?

я сделать это следующим образом

try 
       { 
        using (cn) 
        using (OdbcDataAdapter dadapter = new OdbcDataAdapter(globals.dgsql, cn)) 
        { 
         DataTable table = new DataTable(); 
         dadapter.Fill(table); 

         this.MY_DataGridView.DataSource = table; 
         connection.exitcon(); 
        } 
       } 

       catch (OdbcException o) 
       { 
        MessageBox.Show(o.ToString(), "Error"); 
        return; 
       } 
     } 

где сп мой класс соединения и dgsql является SQL используется для возврата результатов в MY_DataGridView

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