动态生成DataTable
2010-06-02 19:28
555 查看
DataSet ds;//声明DataSet
DataTable dt;//声明Datatable
DataColumn dc;//声明DataColumn
DataRow dr;//声明DataRow
//1得到所有吨位的信息
SqlParameter[] para_tong= new SqlParameter[]
{
new SqlParameter("@TypeId","41")
};
ds = SQLHelper.GetDataSet("P_PublicDataBase_SelectByType", para_tong);
//如果吨位表中没有信心就不用构建临时表啦
if (ds.Tables[0].Rows.Count == 0) return null;
//2查数据
SqlParameter[] para_Detail = new SqlParameter[]
{
new SqlParameter("@TranQuoteMainKeyId",accountTranQuoteMain_In.KeyId)
};
ds = SQLHelper.GetDataSet("P_AccountTranQuoteDetail_In_selectByMainKeyId", para_Detail);
//如果填充的数据没有,同样不用构建临时表了
if (ds.Tables[0].Rows.Count == 0) return null;
//建临时表
dt = new DataTable();
dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String ");
dc.ColumnName = "BeginAddress ";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String ");
dc.ColumnName = "EndAddress";
dt.Columns.Add(dc);
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String ");
dc.ColumnName = ds.Tables[0].Rows[i]["Name"].ToString();
dt.Columns.Add(dc);
}
}
//赋值
//在赋值时
//1:首先查看原来dtable中是否应经存在和此条信息有相同的起始地,目的地
//2: 如果有了,就修改此条数据
//3:如果没有,add一条
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//遍历此临时表中的所有数据
for (int j = 0; j < dt.Rows.Count; j++)
{
//判断是否添加新的一条
if (ds.Tables[0].Rows[i]["BeginAddress"] == dt.Rows[j]["EndAddress"] && ds.Tables[0].Rows[i]["EndAddress"] == dt.Rows[j]["EndAddress"])
{
//遍历所有的列
for (int m = 0; m < dt.Columns.Count; m++)
{
//如果列明和数据的吨位一致,则把价格填充到此列下
if (dt.Columns[m].ColumnName == ds.Tables[0].Rows[i]["VehicleType"])
{
dt.Rows[j][m] = ds.Tables[0].Rows[i]["Price"];
}
}
}
//新加一条数据
else
{
dr = dt.NewRow();
dr["BeginAddress "] = ds.Tables[0].Rows[i]["BeginAddress"];
dr["EndAddress "] = ds.Tables[0].Rows[i]["EndAddress"];
//遍历所有的列
for (int m = 0; m < dt.Columns.Count; m++)
{
//如果列明和数据的吨位一致,则把价格填充到此列下
if (dt.Columns[m].ColumnName == ds.Tables[0].Rows[i]["VehicleType"])
{
dr[m] = ds.Tables[0].Rows[i]["Price"];
}
}
dt.Rows.Add(dr);
}
}
}
ds.Tables.Add(dt);//最终把dtable添加到ds中
return ds;
DataTable dt;//声明Datatable
DataColumn dc;//声明DataColumn
DataRow dr;//声明DataRow
//1得到所有吨位的信息
SqlParameter[] para_tong= new SqlParameter[]
{
new SqlParameter("@TypeId","41")
};
ds = SQLHelper.GetDataSet("P_PublicDataBase_SelectByType", para_tong);
//如果吨位表中没有信心就不用构建临时表啦
if (ds.Tables[0].Rows.Count == 0) return null;
//2查数据
SqlParameter[] para_Detail = new SqlParameter[]
{
new SqlParameter("@TranQuoteMainKeyId",accountTranQuoteMain_In.KeyId)
};
ds = SQLHelper.GetDataSet("P_AccountTranQuoteDetail_In_selectByMainKeyId", para_Detail);
//如果填充的数据没有,同样不用构建临时表了
if (ds.Tables[0].Rows.Count == 0) return null;
//建临时表
dt = new DataTable();
dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String ");
dc.ColumnName = "BeginAddress ";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String ");
dc.ColumnName = "EndAddress";
dt.Columns.Add(dc);
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String ");
dc.ColumnName = ds.Tables[0].Rows[i]["Name"].ToString();
dt.Columns.Add(dc);
}
}
//赋值
//在赋值时
//1:首先查看原来dtable中是否应经存在和此条信息有相同的起始地,目的地
//2: 如果有了,就修改此条数据
//3:如果没有,add一条
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//遍历此临时表中的所有数据
for (int j = 0; j < dt.Rows.Count; j++)
{
//判断是否添加新的一条
if (ds.Tables[0].Rows[i]["BeginAddress"] == dt.Rows[j]["EndAddress"] && ds.Tables[0].Rows[i]["EndAddress"] == dt.Rows[j]["EndAddress"])
{
//遍历所有的列
for (int m = 0; m < dt.Columns.Count; m++)
{
//如果列明和数据的吨位一致,则把价格填充到此列下
if (dt.Columns[m].ColumnName == ds.Tables[0].Rows[i]["VehicleType"])
{
dt.Rows[j][m] = ds.Tables[0].Rows[i]["Price"];
}
}
}
//新加一条数据
else
{
dr = dt.NewRow();
dr["BeginAddress "] = ds.Tables[0].Rows[i]["BeginAddress"];
dr["EndAddress "] = ds.Tables[0].Rows[i]["EndAddress"];
//遍历所有的列
for (int m = 0; m < dt.Columns.Count; m++)
{
//如果列明和数据的吨位一致,则把价格填充到此列下
if (dt.Columns[m].ColumnName == ds.Tables[0].Rows[i]["VehicleType"])
{
dr[m] = ds.Tables[0].Rows[i]["Price"];
}
}
dt.Rows.Add(dr);
}
}
}
ds.Tables.Add(dt);//最终把dtable添加到ds中
return ds;
相关文章推荐
- JSF: 动态生成的DataTable, 固定表头, 固定行标
- 动态生成表格,金额转换,datatable
- 简单高级搜索页面的简单实现,包括数据控件循环嵌套,DataTable动态生成数据添加等
- jsf-后台动态生成richfaces的dataTable
- 动态生成DataTable
- JSF: 动态生成的DataTable, 固定表头, 固定行标
- PAIP.从DATATABLE动态生成表头
- 动态生成DataTable
- 动态生成DataTable绑定至DataList一例
- dev 根据datatable动态生成gridview
- 动态生成DataTable数据集,内含js绑定行变色
- C#如何根据DataTable生成泛型List或者动态类型list
- 动态生成表DataTable
- 动态生成HTMLTable,table,DataTable
- PAIP.从DATATABLE动态生成表头
- dev 根据datatable动态生成gridview
- datatable动态生成复选框
- C#_动态生成DataTable
- JSF: 动态生成的DataTable, 固定表头, 固定行标,
- 动态生成DataTable