DataGrid高难问题?Bug?请教==Visual C#演练==范例Walkthrough_MasterDetail中将DataGrid列标题改为中文 一直自己顶啊?没有看范例。使用TableStyle不行么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在范例的“创建数据连接和数据适配器”步骤中,生成sql语句时给字段起别名,比如:SELECT pub_id AS 识别号, pub_name AS 姓名 FROM publishers也可以在“查询生成器”中直接输入,确定后自动生成。记住:最后一定要重新“生成数据集”,否则会报错! DataGrid列标题在win form下面使用select查询的as方法给列取个别名select aaa as 我的,bbb as 你的....from 表名; 没看过示例,楼主试试这样做吧。在datagrid的ItemDataBound时间中写上这样的代码:private void datagrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType == ListItemType.Header) { e.Item.Cells[0].Text = "列名0"; e.Item.Cells[1].Text = "列名1"; e.Item.Cells[2].Text = "列名2"; e.Item.Cells[3].Text = "列名3"; }} 改成中文?写一个方法即可。 /// </summary> /// <param name="ts">傳出一個列樣式的實例</param> /// <param name="TableName">表名稱,如果是強類型表就是物理表名稱</param> /// <param name="dcc">數據列集合</param> /// <param name="HeaderText">列標題數組</param> public static void FormatDataGridTableStyle(out System.Windows.Forms.DataGridTableStyle ts,string TableName,System.Data.DataColumnCollection dcc,string[] HeaderText) { ts = new System.Windows.Forms.DataGridTableStyle(); // Define a style ts.MappingName = TableName; // 邊歷所有的列,並設置標題 for(int i=0;i<dcc.Count;i++) { if(dcc[i].DataType == typeof(System.Boolean)) { System.Windows.Forms.DataGridBoolColumn c = new System.Windows.Forms.DataGridBoolColumn(); c.HeaderText = HeaderText[i]; c.MappingName = dcc[i].ColumnName; ts.PreferredColumnWidth = 25 * HeaderText[i].Length; ts.GridColumnStyles.Add(c); } else { System.Windows.Forms.DataGridTextBoxColumn c = new System.Windows.Forms.DataGridTextBoxColumn(); c.HeaderText = HeaderText[i]; c.MappingName = dcc[i].ColumnName; ts.PreferredColumnWidth = 25 * HeaderText[i].Length; ts.GridColumnStyles.Add(c); } } } 你都用了什么方法,用Column控件应该可以的再不然就是查询结果列就是显示的了 如果已经建好了(系统生成的)SqlDataAdapter和SqlConnection的话,是不是删掉重新建一下? 直接用DataGrid里面的HeaderText属性就可以了呀。如:this.DataGrid1.Columns[0].HeaderText="编号";或是在Sql语句里面处理了。 我觉得在SQL语句的地方使用别名来实现修改列名是个好办法。strSQL = "Select name As 名称, age As 年龄 From MyTabel"; 用header text不就行了?无论是boundcolumn还是template column都可以设置,只要不在datagrid属性里将autogenerate columns设成false。 我自己已经试过本专栏和GOOGLE里能搜索到的所有的方法,结果都不能满足愿望,难道是BUG? BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG?BUG? 求sql 语句 急,求个算法~ C#中查询数据库的图片怎么转为和在数据库中查询的图片一样。 使用VisualStudio,.Net技术调取AD活动目录 定点(定位)打印问题(打票据) 如何实现SQL语句的设计界面? 网页之间传对象怎么传? 关于命名空间的一个小问题 如何在数据绑定的datagrid中在回车后跳到下一个单元格? 请教各位大侠 有一个字符串,如“VisuwlStudioNet”,有一个什么方法,可以把大写的字母找出来 简单问题,有关C#的对TEXTBOX的限制,谢谢
比如:SELECT pub_id AS 识别号, pub_name AS 姓名 FROM publishers
也可以在“查询生成器”中直接输入,确定后自动生成。记住:最后一定要重新“生成数据集”,否则会报错!
在win form下面
使用select查询的as方法给列取个别名
select aaa as 我的,bbb as 你的....from 表名;
在datagrid的ItemDataBound时间中写上这样的代码:
private void datagrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
e.Item.Cells[0].Text = "列名0";
e.Item.Cells[1].Text = "列名1";
e.Item.Cells[2].Text = "列名2";
e.Item.Cells[3].Text = "列名3";
}
}
写一个方法即可。
/// </summary>
/// <param name="ts">傳出一個列樣式的實例</param>
/// <param name="TableName">表名稱,如果是強類型表就是物理表名稱</param>
/// <param name="dcc">數據列集合</param>
/// <param name="HeaderText">列標題數組</param>
public static void FormatDataGridTableStyle(out System.Windows.Forms.DataGridTableStyle ts,string TableName,System.Data.DataColumnCollection dcc,string[] HeaderText)
{ ts = new System.Windows.Forms.DataGridTableStyle(); // Define a style
ts.MappingName = TableName; // 邊歷所有的列,並設置標題
for(int i=0;i<dcc.Count;i++)
{
if(dcc[i].DataType == typeof(System.Boolean))
{
System.Windows.Forms.DataGridBoolColumn c = new System.Windows.Forms.DataGridBoolColumn();
c.HeaderText = HeaderText[i];
c.MappingName = dcc[i].ColumnName;
ts.PreferredColumnWidth = 25 * HeaderText[i].Length;
ts.GridColumnStyles.Add(c);
}
else
{
System.Windows.Forms.DataGridTextBoxColumn c = new System.Windows.Forms.DataGridTextBoxColumn();
c.HeaderText = HeaderText[i];
c.MappingName = dcc[i].ColumnName;
ts.PreferredColumnWidth = 25 * HeaderText[i].Length;
ts.GridColumnStyles.Add(c);
}
}
}
用Column控件应该可以的
再不然就是查询结果列就是显示的了
如:
this.DataGrid1.Columns[0].HeaderText="编号";
或是在Sql语句里面处理了。
结果都不能满足愿望,难道是BUG?
BUG?BUG?BUG?BUG?BUG?
BUG?BUG?BUG?BUG?BUG?BUG?BUG?
BUG?BUG?BUG?BUG?BUG?BUG?BUG?
BUG?BUG?BUG?BUG?BUG?BUG?
BUG?BUG?BUG?BUG?BUG?
BUG?BUG?BUG?BUG?BUG?