C# DataGridView绑定后单元格内显示为红叉

tanglihui520 2014-02-18 07:26:10

先一个一个读取数据没读取到一行就调用刷新的DataGridView
调用刷新,获取的是网页的节点数据需要一点时间每读取一次就循环一次次数不定
Thread test = new Thread(new ThreadStart(RefeData));
test.Start();
//刷新方法
private void RefeData()
{
lock (ds)
{
string sql = string.Format("SELECT id,ranking,name,wangw,buy,week,time,outtime,shop FROM taodata");
try
{
if (ds.Tables.Count > 0)
{
ds.Tables.Clear();
}
ds = DbHelperSQLite.Query(sql);
bindingSource.DataSource = ds.Tables["ds"];
dgvdata.DataSource = bindingSource;
}
catch (Exception ex)
{

}
}
}
...全文
487 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
NBSstudio 2015-10-22
  • 打赏
  • 举报
回复
因為你用了.clear把整了結構都給清除了,如果只是單純清除數據就要把對象改為rows
qq_31283475 2015-10-22
  • 打赏
  • 举报
回复
求解`````````````
  • 打赏
  • 举报
回复
跨线程操作控件用Invoke
        private void RefeData()
        {
            lock (ds)
            {
                string sql = string.Format("SELECT id,ranking,name,wangw,buy,week,time,outtime,shop FROM taodata");
                try
                {
                    if (ds.Tables.Count > 0)
                    {
                        ds.Tables.Clear();
                    }
                    ds = DbHelperSQLite.Query(sql);

                    this.Invoke(new MethodInvoker(() =>
                    {
                        this.bindingSource.DataSource = ds.Tables["ds"];
                        this.dgvdata.DataSource = bindingSource;
                    }));
                }
                catch (Exception ex)
                {

                }
            }
        }

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧