| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 601 人关注过本帖
标题:DataGridTableStyles 的问题求助,同时感谢f3260247
取消只看楼主 加入收藏
xlmyuan
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-4-4
收藏
 问题点数:0 回复次数:4 
DataGridTableStyles 的问题求助,同时感谢f3260247
问题:
我有一个DataGrid ,数据源是一个 DataSet,
此DataSet,里面有一个DatatTable ,其来源不是数据库表,而是SQL存储过程的返回集。
因为是返回集,所以:
DataSet.Tables[0].TableName 是一个空值。

当我在 DataGrid 上做DataGridTableStyles 时,
因为无法指定 MappingName 而无法应用DataGridTableStyles。

(我试着给DataSet.Tables[0].TableName 随便指定了一个NAME,
然后在DataGridTableStyles的MappingName也指定这个NAME,结果还是不行)

请高手指点:
搜索更多相关主题的帖子: SQL 数据库 DataSet NAME 
2006-04-07 08:29
xlmyuan
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-4-4
收藏
得分:0 

private void btnGen_Click(object sender, System.EventArgs e)
{

if (this.cbBox.Text !=System.String.Empty)
{
this.ds.Clear();
this.dvmon=this.RunProcedure(this.procmon,this.cbBox.Text,this.tbltmpmon);
this.dvsta=this.RunProcedure(this.procsta,this.cbBox.Text,this.tbltmpsta);

this.FormatDataGrid();
this.dgPlan.DataSource=this.dvmon;
}
2006-04-07 09:04
xlmyuan
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-4-4
收藏
得分:0 

上面的RunProcedure()和 FormatDataGrid()定义如下

private DataView RunProcedure(string storedProcName,string strParameter,string tblName)
{
DataSet dataSet=new DataSet();
SqlConnection con2=new SqlConnection(this.constring);
SqlCommand sqlCmd=con2.CreateCommand();
sqlCmd.CommandType=CommandType.StoredProcedure;
sqlCmd.CommandText=storedProcName;
sqlCmd.Parameters.Add("@date",SqlDbType.VarChar,2000);
sqlCmd.Parameters["@date"].Value=strParameter;
try
{
con2.Open();
SqlDataAdapter sqlDa=new SqlDataAdapter();
sqlDa.SelectCommand=sqlCmd;
dataSet.Clear();
sqlDa.Fill(dataSet);
con2.Close();
dataSet.Tables[0].TableName=tblName;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
DataView dview=new DataView();
dview=new DataView(dataSet.Tables[0]);
return dview;

}

2006-04-07 09:06
xlmyuan
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-4-4
收藏
得分:0 

private void FormatDataGrid()
{

DataGridTableStyle ts=new DataGridTableStyle();
ts.MappingName=this.tbltmpmon;
ts.AlternatingBackColor=Color.LightGray;
ts.AllowSorting=true;
ts.ReadOnly=true;
ts.RowHeadersVisible=true;
int cols=this.ds.Tables[tblMonth].Columns.Count;
for (int i=0;i<cols;i++)
{
if (this.ds.Tables[tblMonth].Columns[i].ColumnName.Equals("PRD_NO"))
{
DataGridTextBoxColumn cs=new DataGridTextBoxColumn();
cs.MappingName=this.ds.Tables[tblMonth].Columns[i].ColumnName;
cs.HeaderText="材料代号";
cs.Width=80;
cs.NullText=string.Empty;
cs.Alignment=System.Windows.Forms.HorizontalAlignment.Left;
ts.GridColumnStyles.Add(cs);
}
else if (this.ds.Tables[tblMonth].Columns[i].ColumnName.Equals("PRD_NAME"))
{
DataGridTextBoxColumn cs=new DataGridTextBoxColumn();
cs.MappingName=this.ds.Tables[tblMonth].Columns[i].ColumnName;
cs.HeaderText="材料品名规格";
cs.Width=180;
cs.NullText=string.Empty;
cs.Alignment=System.Windows.Forms.HorizontalAlignment.Left;
ts.GridColumnStyles.Add(cs);
}
else if (this.ds.Tables[tblMonth].Columns[i].ColumnName.Equals("UT"))
{
DataGridTextBoxColumn cs=new DataGridTextBoxColumn();
cs.MappingName=this.ds.Tables[tblMonth].Columns[i].ColumnName;
cs.HeaderText="单位";
cs.Width=50;
cs.NullText=string.Empty;
cs.Alignment=System.Windows.Forms.HorizontalAlignment.Left;
ts.GridColumnStyles.Add(cs);
}
else if (this.ds.Tables[tblMonth].Columns[i].ColumnName.Equals("QTY_ST"))
{
DataGridTextBoxColumn cs=new DataGridTextBoxColumn();
cs.MappingName=this.ds.Tables[tblMonth].Columns[i].ColumnName;
cs.HeaderText="期初库存";
cs.Width=75;
cs.NullText=string.Empty;
cs.Alignment=System.Windows.Forms.HorizontalAlignment.Right;
ts.GridColumnStyles.Add(cs);
}
else
{
DataGridTextBoxColumn cs=new DataGridTextBoxColumn();
this.str=this.ds.Tables[tblMonth].Columns[i].ColumnName.ToString();
switch (this.str.Substring(4,1))
{
case "P":
cs.HeaderText=this.str.Substring(0,2)+"年"+
this.str.Substring(2,2)+"月在途";
break;
case "E":
cs.HeaderText=this.str.Substring(0,2)+"年"+
this.str.Substring(2,2)+"月未领";
break;
case "B":
cs.HeaderText=this.str.Substring(0,2)+"年"+
this.str.Substring(2,2)+"月结存";
break;
default:
cs.HeaderText=this.ds.Tables[tblMonth].Columns[i].ColumnName;
break;
}
cs.MappingName=this.ds.Tables[tblMonth].Columns[i].ColumnName;
// cs.HeaderText=this.ds.Tables[tblMonth].Columns[i].ColumnName;
cs.Width=100;
cs.NullText=string.Empty;
cs.Alignment=System.Windows.Forms.HorizontalAlignment.Right;
ts.GridColumnStyles.Add(cs);
}
}
this.dgPlan.TableStyles.Clear();
this.dgPlan.TableStyles.Add(ts);
}
2006-04-07 09:08
xlmyuan
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-4-4
收藏
得分:0 
看代码眼花,还不如看问题描述,请高手帮忙
2006-04-07 09:11
快速回复:DataGridTableStyles 的问题求助,同时感谢f3260247
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026510 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved