2013-11-28 44 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; 
       } 
     } 

其中cn是我的连接类dgsql是用来将结果返回给MY_DataGridView

的sql