C# 删除列名的下划线

C# 删除列名的下划线,c#,asp.net,.net,C#,Asp.net,.net,我使用这个Linq查询在gridview中显示列 protected void Page_Load(object sender, EventArgs e) { string CS = ConfigurationManager.ConnectionStrings ["ConnectionString"].ConnectionString; SqlConnection connection = new SqlConnection(CS); SqlCommand comma

我使用这个Linq查询在gridview中显示列

 protected void Page_Load(object sender, EventArgs e)
 {
    string CS = ConfigurationManager.ConnectionStrings ["ConnectionString"].ConnectionString;
    SqlConnection connection = new SqlConnection(CS);
    SqlCommand command = new SqlCommand();
    SqlDataAdapter adapter = new SqlDataAdapter();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    DataTable dt1 = new DataTable();
    try
    {
        connection.Open();
        command.Connection = connection;
        command.CommandType = CommandType.StoredProcedure;
        command.CommandText = "ManLog_Profits";
        adapter = new SqlDataAdapter(command);
        adapter.Fill(dt);
        adapter.Fill(dt1);
        var query = from r in dt.AsEnumerable()
                    where r.Field<string>("Department") == "Manufacturing"
                    select new
                    {
                        ID = r["ID"].ToString(),
                        Dep_Name = r["Dep Name"].ToString(),
                        Sales_Profit = r["Sales Profit"].ToString(),
                        Sales_Transport = r["Sales Transport"].ToString  (),                            
                    };
        GridView1.DataSource = query;
        GridView1.DataBind();
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
字符串CS=ConfigurationManager.ConnectionString[“ConnectionString”].ConnectionString;
SqlConnection=newsqlconnection(CS);
SqlCommand=newsqlcommand();
SqlDataAdapter=新的SqlDataAdapter();
数据集ds=新数据集();
DataTable dt=新的DataTable();
DataTable dt1=新DataTable();
尝试
{
connection.Open();
command.Connection=连接;
command.CommandType=CommandType.storedProcess;
command.CommandText=“ManLog_”;
adapter=newsqldataadapter(命令);
适配器填充(dt);
适配器。填充(dt1);
var query=来自dt.AsEnumerable()中的r
其中r.字段(“部门”)=“制造”
选择新的
{
ID=r[“ID”].ToString(),
Dep_Name=r[“Dep Name”].ToString(),
销售利润=r[“销售利润”]。ToString(),
销售运输=r[“销售运输”]。ToString(),
};
GridView1.DataSource=查询;
GridView1.DataBind();
}
}

现在,我如何才能删除列名的下划线。

在linq查询中,使用匿名类型。你可以自己决定名字

select new
{
  ID = r["ID"].ToString(),
  DepName = r["Dep Name"].ToString(),
  SalesProfit = r["Sales Profit"].ToString(),
  SalesTransport = r["Sales Transport"].ToString()
};

手动设置列-
自动生成列=false

GridView1.AutoGenerateColumns = false;
GridView1.Columns.Add(new BoundField() { HeaderText = "ID", DataField = "ID" });
GridView1.Columns.Add(new BoundField() { HeaderText = "Dep Name", DataField = "Dep_Name" });
GridView1.Columns.Add(new BoundField() { HeaderText = "Sales Profit", DataField = "Sales_Profit" });
GridView1.Columns.Add(new BoundField() { HeaderText = "Sales Transport", DataField = "Sales_Transport" });

GridView1.DataBind();
您还可以使用DataView.Filter代替Linq查询:

DataView dv = new DataView() {Table = dt};
dv.Filter = "[Department] = 'Manufacturing'"
GridView1.DataSource = dv;
GridView1.DataBind();

问题是我想在我的专栏中包含单词之间的spave。我无法获得HeaderText方法。它说对象不包含标题文本的定义。我知道我可以在aspx中处理这个问题。由于我在许多页面中使用过,只是为了寻找一个简单的解决方案,在这个解决方案中,我可以用空格替换下划线。@Vicky你说得对(也是因为你不能访问自动生成的列),我编辑了我的答案。你在gridview中做过添加、编辑、,删除和更新?@Learner-gridview是只读的,我不执行任何操作。那么,您可以在aspx页面中处理它,这样您就可以通过自定义设计更改使gridview看起来很好。只需添加ItemTemplate并在每个标签内添加一个标签即可解决问题。