DATATABLE的插入自定义列
插入数据的格式很简单如下
dt.Columns.Add("命名字段", typeof(类型));
for ( int i = 0; i < dt.Rows.Count;i++ )
{
//
}
或者用foreach遍历
foreach (DataRow dr in dt.rows)
{
//
}
今天重点的要讲一个问题,先看下面的代码
dt.Columns.Add("ul", typeof(int));
for ( int i = 0; i < dt.Rows.Count;i++ )
{
strSql = "select top 1 Id from BBS where Classid = " + dt.Rows["Id"].ToString() + " order by Id desc";
datb = DacTools.GetDataSet(strSql);//DacTools是个数据操作类,GetDataSet返回DATATABLE类型
for (int n = 0; n < datb.Rows.Count; n++)
{
dt.Rows["ul"] = datb.Rows[n]["Id"].ToString();//给命名字段ul赋值
}
}
strSql = "select top 1 Id from BBS where Classid = " + dt.Rows["Id"].ToString() + " order by Id desc";
这个查询出来只有一行数据,按理DATATABLE的ROWS行数为1,datb.Rows[n]索引n写0就行,可是不行,根据以前看的一篇文章,估计是开辟的内存地址不一样,于是再用一个循环,问题解决。
次代码也可写成
dt.Columns.Add("ul", typeof(int));
foreach ( DataRow dr in dt.Rows )
{
strSql = "select top 1 Id from BBS where Classid = " + dr["Id"].ToString() + " order by Id desc";
datb = DacTools.GetDataSet(strSql);
foreach (DataRow drw in datb.Rows)
{
dr["ul"] = drw["Id"].ToString();
}
}
dt.Columns.Add("命名字段", typeof(类型));
for ( int i = 0; i < dt.Rows.Count;i++ )
{
//
}
或者用foreach遍历
foreach (DataRow dr in dt.rows)
{
//
}
今天重点的要讲一个问题,先看下面的代码
dt.Columns.Add("ul", typeof(int));
for ( int i = 0; i < dt.Rows.Count;i++ )
{
strSql = "select top 1 Id from BBS where Classid = " + dt.Rows
datb = DacTools.GetDataSet(strSql);//DacTools是个数据操作类,GetDataSet返回DATATABLE类型
for (int n = 0; n < datb.Rows.Count; n++)
{
dt.Rows
}
}
strSql = "select top 1 Id from BBS where Classid = " + dt.Rows
这个查询出来只有一行数据,按理DATATABLE的ROWS行数为1,datb.Rows[n]索引n写0就行,可是不行,根据以前看的一篇文章,估计是开辟的内存地址不一样,于是再用一个循环,问题解决。
次代码也可写成
dt.Columns.Add("ul", typeof(int));
foreach ( DataRow dr in dt.Rows )
{
strSql = "select top 1 Id from BBS where Classid = " + dr["Id"].ToString() + " order by Id desc";
datb = DacTools.GetDataSet(strSql);
foreach (DataRow drw in datb.Rows)
{
dr["ul"] = drw["Id"].ToString();
}
}
浙公网安备 33010602011771号