2013-09-24 122 views
0

我在Visual Studio中创建了Windows窗体应用程序,并将初始窗体放入了一个DataGridView(从工具箱)。然后我制作了数据集,并将数据从文件中提取到数据集中。我试图将数据集中的数据放入GridView中,但是当我开始表单时没有发生任何事情。网格是空的。我做错了什么?这是我尝试过的:将数据从文件导入到DataGridView

dataGridView1.Dock = DockStyle.Fill; 
dataGridView1.DataSource = MakeDataTable(); 

MakeDataTable()是返回DataSet(它是有效的)的方法。 dataGridView1是我从工具箱获得的DataGridView类的对象。网格保持空白,即使在编译时没有错误也没有发生。 然后,我试图以类似的方式在Form1(默认窗体)上创建DataGridView。我擦除数据网格视图从形式设计,并添加一行:

DataGridView dataGridView1 = new DataGridView(); 

它也不能工作,我不知道如何把该要的形式可见。

这工作,但它打开了另一种形式,所以我不得不两种形式,一种空的,第二个与GridView的正确填入数据:

Form form1 = new Form(); 
DataGridView dataGridView1 = new DataGridView(); 
dataGridView1.Dock = DockStyle.Fill; 
dataGridView1.DataSource = MakeDataTable(); 
form1.Controls.Add(dataGridView1); 
form1.ShowDialog(); 

我做了什么错?

+0

你能尝试将其设置到的BindingSource,然后设置数据源为BindingSource的? – appcoder

回答

0

如果MakeDataTable返回DataSet

**// Add these lines of code to your source** 
DataSet ds = MakeDataTable(); 
dataGridView1.DataSource = ds; 
dataGridView1.DataMember = ds.Tables[0].TableName; 
dataGridView1.AutoGenerateColumns = true; 

form1.Controls.Add(dataGridView1); 
form1.ShowDialog(); 
+0

第三行代码的含义是什么?带有“Tablename”的那个。这不会打开两种形式而不是一种吗?对不起,如果我问愚蠢的问题,我是新的。 –

+0

@ user2806097我们都在这里教和学,所以没有什么可以说是'愚蠢的'。当你创建一个DataSet时,你可以放入多个DataTables,或者有关系。该行通知datagrid在生成的DataSet中选择第一个DataTable。形式开放是完全不同的故事。一个表单通常通过调用Show()或ShowDialog()来打开。 – Alireza

+0

@ user2806097还有一件事:您是否尝试过代码?它工作吗?它解决了你的问题吗? – Alireza

相关问题