日期:2014-05-20  浏览次数:21209 次

急!高分求各位高手帮忙!dbgrid问题!
我想通过下面数据库得到下面dbgrid效果,各位帮忙,谢谢!
如              
dept表
deptcode           deptname  
1                           计算机系

teachercode     teachername     deptcode
1                           张三                       1
2                         李四                         1
3                         王五                         1

 
实现如下dbgrid效果
教师编号           教师系           教师名称        
1                     计算机系       张三、李四、王五

------解决方案--------------------
用存储过程来做应该更好一些
------解决方案--------------------
private DataTable ChangeDataFormat(DataView dv)
{
string oldTime = " ";
DataRow reportDr = null;
DataTable dtReport = new DataTable();


dtReport.Columns.Add( "时间 ");
//添加转换后数据集的列
foreach (DataRow dr in dv.Table.Rows)
{
if (!dtReport.Columns.Contains(dr[ "STNM "].ToString().Trim()))
{
dtReport.Columns.Add(dr[ "STNM "].ToString().Trim());
}
}

//填充数据
for (int i = 0; i < dv.Table.DefaultView.Count; i++)
{
DataRowView dr = dv.Table.DefaultView[i];
string stnm = dr[ "STNM "].ToString().Trim();
string stcd = dr[ "STCD "].ToString().Trim();
string zfValue = dr[ "VAL "].ToString().Trim();
string zfTM = dr[ "TM "].ToString().Trim();

//根据断次类型改变时间格式
string timeType = GetTimeType();
string formatString = GetDateFormatString(timeType, zfTM);

zfTM = DateTime.Parse(zfTM).ToString(formatString);

if (zfTM != oldTime)
{
if (reportDr != null)
{
dtReport.Rows.Add(reportDr);
}
reportDr = dtReport.NewRow();
reportDr[0] = zfTM;
}
reportDr[stnm] = zfValue;
oldTime = zfTM;
}
//加入最后一行
dtReport.Rows.Add(reportDr);

return dtReport;

}

以前写的 把一个数据集转换成横向的数据集 你看看有没参考。。
------解决方案--------------------
写个存储过程不就得了...
存储过程会写吧?

------解决方案--------------------
存储过程