C# 要基于列填充的Datagrid视图

C# 要基于列填充的Datagrid视图,c#,C#,下面是从employee表获取数据的Datagridview代码 我面临的问题是,我的employee表有10列(ID、employno、Dob、JoingData…等等) 我只想用ID、EmplyNo和DOB填充我的表格 但是下面的代码得到了一切,请告诉我我应该怎么做才能只得到特定的列 string sql = "select * from Employee"; SqlConnection connection = new SqlConnection(CON

下面是从employee表获取数据的Datagridview代码

我面临的问题是,我的employee表有10列(ID、employno、Dob、JoingData…等等)

我只想用ID、EmplyNo和DOB填充我的表格

但是下面的代码得到了一切,请告诉我我应该怎么做才能只得到特定的列

          string sql = "select * from Employee";
        SqlConnection connection = new SqlConnection(CONNECTION_STRING);
        //SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
          dataadapter = new SqlDataAdapter(sql, connection);
       // DataSet ds = new DataSet();
        ds = new DataSet();
        connection.Open();
        dataadapter.Fill(ds, scrollVal, 5, "Employee");
        connection.Close();
        dgMessages.DataSource = ds;
        dgMessages.DataMember = "tEmployee";
而不是

   string sql = "select * from Employee";

而不是

   string sql = "select * from Employee";


更改选择以仅获取所需的支持集,或使用设计器:

这有点痛苦,因为您首先必须添加一个未绑定的列,然后编辑刚刚添加的列,以将DataPropertyName设置为结果表中的列名,但这是可行的

通过单击DataGridView的PropertyEditor的“columns”属性中的“…”或单击设计器中网格右上角的小“Play”(播放)按钮(选中时),可以找到此对话框


差点忘了:重要提示:您需要添加每一列,并在您不想看到的列上设置Visible=False-我认为这在WebForms中是不同的,在WebForms中有类似AutogenerateColumns的内容。

或者更改您的选择以仅获取所需内容的支持集,或者使用设计器:

这有点痛苦,因为您首先必须添加一个未绑定的列,然后编辑刚刚添加的列,以将DataPropertyName设置为结果表中的列名,但这是可行的

通过单击DataGridView的PropertyEditor的“columns”属性中的“…”或单击设计器中网格右上角的小“Play”(播放)按钮(选中时),可以找到此对话框


差点忘了:重要提示:您需要添加每一列,并在您不想看到的列上设置Visible=False-我认为这在WebForms中是不同的,在WebForms中有类似AutogenerateColumns的内容。

我认为您遗漏了一些内容,因为尽管您在运行时设计了3列,但如果
数据源
有4列或更多列,它将显示全部,除非您使用
grid.Columns[name].Visible=false处理它。请仔细阅读最后两行。。。我得承认我第一次就忘了,但不久之后我又加上了那几行。我不再使用WinForms,也不再使用WebForms,因此我倾向于忘记自动生成bla的内容在哪里。感谢CKoenig,实际上我添加了该列,其中一个列是hyperlink,现在的问题是如何将值添加到coulum。您看到上面属性编辑器的“数据”部分中的“DataPropertyName”了吗?在这里,您必须将列的名称放在数据表中,例如“EmplyNo”(当然不带“”),顺便说一句:如果您只需要数据表,就不必使用数据集!这样你可能不得不说“tEmployee.EmplyNo”,但我不这么认为)我试图在datagridview.Rows[n].Cells[0].Value=EmpId下面做一些类似的事情,但不确定如何做。我认为你遗漏了一些东西,因为尽管你设计了3列,但在运行时,如果
数据源有4列或更多列,它将显示全部,除非您使用
grid.Columns[name].Visible=false处理它。请仔细阅读最后两行。。。我得承认我第一次就忘了,但不久之后我又加上了那几行。我不再使用WinForms,也不再使用WebForms,因此我倾向于忘记自动生成bla的内容在哪里。感谢CKoenig,实际上我添加了该列,其中一个列是hyperlink,现在的问题是如何将值添加到coulum。您看到上面属性编辑器的“数据”部分中的“DataPropertyName”了吗?在这里,您必须将列的名称放在数据表中,例如“EmplyNo”(当然不带“”),顺便说一句:如果您只需要数据表,就不必使用数据集!这样,您可能不得不说“tEmployee.EmplyNo”,但我不这么认为)我试图执行类似datagridview.Rows[n].Cells[0].Value=EmpId之类的操作,但不确定如何执行。