dataGridView 在 DataSource 之后不显示数据

Posted

技术标签:

【中文标题】dataGridView 在 DataSource 之后不显示数据【英文标题】:dataGridView not showing data after DataSource 【发布时间】:2018-01-05 21:39:33 【问题描述】:

我是 C# 新手,并且有简单的方法来显示来自表 DimCustomer 的数据。我从一个按钮调用这个方法,但它不显示数据。虽然当我调试我的代码时,我可以看到数据,但不显示它。大家有什么建议

private void ShowGridData()
        
            // create a connection object
            string ConnectionString = "Integrated Security=SSPI;" +
            "database=AdventureWorksDW2012;" + "server=DESKTOP-L9L3SMT\\SQL2K12;";
            SqlConnection conn = new SqlConnection(ConnectionString);

            // open the connection
            conn.Open();

            // Create a DataTableMapping object
            DataTableMapping myMapping = new DataTableMapping("DimCustomer", "mapCustomer");
            SqlDataAdapter adapter = new SqlDataAdapter("Select * FROM DimCustomer where LastName='yang' and BirthDate='1966-04-08'", conn);

            // Call DataAdapter's TableMappings.Add method
            adapter.TableMappings.Add(myMapping);

            // Create a DataSet object and Call DataAdapter's Fill method
            DataSet ds = new DataSet();
            adapter.Fill(ds, "DimCustomer");
            dataGridView1.ColumnCount = 0;
            dataGridView1.DataSource = ds.DefaultViewManager;
        

【问题讨论】:

我已经有一段时间没有做WinForms了,但是dataGridView1.Invalidate()能解决问题吗? DataGridView1.AutoGenerateColumns = true; DataGridView1.DataSource = ds;this 应该够用了 如果不为dataGridView创建列,就没有地方放数据了 很明显,您需要对所有这些 DB Provider 对象进行更多研究。您不需要表映射,不需要本地 DataAdapter 或 ViewManager,也不需要 Dataset。您确实需要关闭并处理您的连接并将日期存储为日期。另请阅读How to Ask 并采取tour 【参考方案1】:

你可以试试这个吗?

dataGridView1.DataSource = ds.Tables[0];

【讨论】:

以上是关于dataGridView 在 DataSource 之后不显示数据的主要内容,如果未能解决你的问题,请参考以下文章

频繁绑定DataGridView的DataSource却不正常显示

c#中datagridview中datasource反复赋值没有变化?

dataGridView 在 DataSource 之后不显示数据

DataGridView 问题,不可见行仍然可见,尽管有 DataSource,但 DataGridView 为空

C# DataGridView.DataSource

解决DataGridView 通过DataSource赋值太慢问题