操作DataTable
public DataTable CreateDataTable(DataTable dt){
问题一:在这里为“dt”增加“36”列,并指定各列的“名字”。应该怎样写???
foreach (DataRow dr in dt.Rows)
{
string nf = dr["NF"].ToString().Trim();
string bmbh = dr["BMBH"].ToString().Trim();
string sfz = dr["SFZ"].ToString().Trim();
问题二:在这里循环为每条记录的“新增的36列”赋值。值是从数据库中查询出的记录集“dt_staff”,所以要再循环判断一下。
如果,dr_staff["YF"].ToString().Trim() == "1"则添加到新增的第一列,dr_staff["YF"].ToString().Trim() == "12"则添加到新增的第二列,dr_staff["YF"].ToString().Trim() == "3"则添加到新增的第一三列,直到添加了第36列。
每行的值应该怎样添加法???
最后返回“Dt”
DataTable dt_staff = new M_BLL.T_Select().RtScore_StaffHZ(sfz, nf, bmbh);
foreach (DataRow dr_staff in dt_staff.Rows)
{
if (dr_staff["YF"].ToString().Trim() == "1")
{
}
}
}
}
--------------------编程问答-------------------- 参考 --------------------编程问答-------------------- 添加行 --------------------编程问答--------------------
正解。膜拜高手。 --------------------编程问答--------------------
--------------------编程问答--------------------
DataTable table = new DataTable();//实例化DataTable
table.Columns.Add("column1", typeof(string));//添加一列
table.Columns.Add("column2", typeof(string));
table.Columns.Add("column3", typeof(string));//后面省略
DataTable dt_staff = new M_BLL.T_Select().RtScore_StaffHZ(sfz, nf, bmbh);//这里是你获取到的数据集
foreach (DataRow dr_staff in dt_staff.Rows)
{
DataRow row = table.NewRow();
/**
* 如果,dr_staff["YF"].ToString().Trim() == "1"则添加到新增的第一列,
* dr_staff["YF"].ToString().Trim() == "12"则添加到新增的第二列,
* dr_staff["YF"].ToString().Trim() == "3"则添加到新增的第三列,直到添加了第36列。
* */
switch (dr_staff["YF"].ToString().Trim())
{
case "1":
row[0] = "";
break;
case "2":
row[2] = "";
break;
case "3":
row[3] = "";
break;
default:
break;
}
table.Rows.Add(row);
}
+1 --------------------编程问答--------------------
--------------------编程问答--------------------
//方法一:
DataTable tblDatas = newDataTable("Datas");
DataColumn dc = null;
//赋值给dc,是便于对每一个datacolumn的操作
dc =tblDatas.Columns.Add("ID",Type.GetType("System.Int32"));
dc.AutoIncrement= true;//自动增加
dc.AutoIncrementSeed = 1;//起始为1
dc.AutoIncrementStep = 1;//步长为1
dc.AllowDBNull = false;//
dc = tblDatas.Columns.Add("Product",Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Version",Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Description",Type.GetType("System.String"));
DataRow newRow;
newRow = tblDatas.NewRow();
newRow["Product"] = "大话西游";
newRow["Version"] = "2.0";
newRow["Description"] = "我很喜欢";
tblDatas.Rows.Add(newRow);
newRow = tblDatas.NewRow();
newRow["Product"] = "梦幻西游";
newRow["Version"] = "3.0";
newRow["Description"] = "比大话更幼稚";
tblDatas.Rows.Add(newRow);
//方法二:
DataTable tblDatas = newDataTable("Datas");
tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
tblDatas.Columns[0].AutoIncrement = true;
tblDatas.Columns[0].AutoIncrementSeed = 1;
tblDatas.Columns[0].AutoIncrementStep = 1;
tblDatas.Columns.Add("Product",Type.GetType("System.String"));
tblDatas.Columns.Add("Version",Type.GetType("System.String"));
tblDatas.Columns.Add("Description",Type.GetType("System.String"));
tblDatas.Rows.Add(newobject[]{null,"a","b","c"});
tblDatas.Rows.Add(newobject[] { null, "a", "b", "c" });
tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
tblDatas.Rows.Add(new object[] { null, "a", "b", "c" });
//方法三:
DataTable table = new DataTable ();
//创建table的第一列
DataColumn priceColumn = new DataColumn();
//该列的数据类型
priceColumn.DataType = System.Type.GetType("System.Decimal");
//该列得名称
priceColumn.ColumnName = "price";
//该列得默认值
priceColumn.DefaultValue =50;
// 创建table的第二列
DataColumn taxColumn = new DataColumn();
taxColumn.DataType = System.Type.GetType("System.Decimal");
//列名
taxColumn.ColumnName = "tax";
//设置该列得表达式,用于计算列中的值或创建聚合列
taxColumn.expression_r_r = "price *0.0862";
// Create third column.
DataColumn totalColumn = new DataColumn();
totalColumn.DataType = System.Type.GetType("System.Decimal");
totalColumn.ColumnName = "total";
//该列的表达式,值是得到的是第一列和第二列值得和
totalColumn.expression_r_r = "price + tax";
// 将所有的列添加到table上
table.Columns.Add(priceColumn);
table.Columns.Add(taxColumn);
table.Columns.Add(totalColumn);
//创建一行
DataRow row = table.NewRow();
//将此行添加到table中
table.Rows.Add(row);
//将table放在试图中
DataViewview = new DataView(table);
dg.DataSource = view;
dg.DataBind();
///////////////////////////////////////////--------------------编程问答--------------------
///方法1 创建新table 并给其赋值
DataTable dt_new = new DataTable();
DataColumn dc = dt_new.Columns.Add("id", typeof(int));
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.AllowDBNull = false;//
dc = dt_new.Columns.Add("id_new", typeof(string));
dc = dt_new.Columns.Add("title_new", typeof(string));
dc = dt_new.Columns.Add("img_new", typeof(string));
dc = dt_new.Columns.Add("ranking", typeof(string));
for (int i = 0; i < dt_c.Rows.Count; i++)
{
DataRow datarow = dt_new.NewRow();
datarow["id_new"] = dt_c.Rows[i][0];
datarow["title_new"] = dt_c.Rows[i][1];
datarow["img_new"] = dt_c.Rows[i][2];
datarow["ranking"] = dt_c.Rows[i][3];
dt_new.Rows.Add(datarow);
}
///////////////////////////////
//方法2 创建新table 并给其赋值
DataTable DataTable1;
DataTable DataTable2;
DataTable DataTable = new DataTable();
DataTable.Columns.Add("a ", typeof(string));
DataTable.Columns.Add("b ", typeof(string));
DataTable.Columns.Add("c ", typeof(string));
DataTable.Columns.Add("d ", typeof(string));
for (int i = 0; i<dt_s.Rows.Count; i++)
{
DataRow datarow = DataTable.NewRow();
datarow["a "] = dt_s.Rows[i][0];
datarow["b "] = dt_s.Rows[i][1];
datarow["c "] = dt_s.Rows[i][2];
datarow["d "] = dt_s.Rows[i][3];
DataTable.Rows.Add(datarow);
}
///////////////////////////////////
public DataTable CreateDataTable(DataTable dt)--------------------编程问答-------------------- 额,写的够全的 这年月混点分不容易啊 --------------------编程问答--------------------
{
//问题一:在这里为“dt”增加“36”列,并指定各列的“名字”。应该怎样写???
//是在原有的基础上加还是 全部清空加?
for (int i = 0; i < 36; i++)
{
dt.Columns.Add("CName" + i.ToString());
}
foreach (DataRow dr in dt.Rows)//这个dt.Rows不是从数据库中取的 这个dt.Rows应该为0
{
string nf = dr["NF"].ToString().Trim();
string bmbh = dr["BMBH"].ToString().Trim();
string sfz = dr["SFZ"].ToString().Trim();
//问题二:在这里循环为每条记录的“新增的36列”赋值。值是从数据库中查询出的记录集“dt_staff”,所以要再循环判断一下。
//如果,dr_staff["YF"].ToString().Trim() == "1"则添加到新增的第一列,
//dr_staff["YF"].ToString().Trim() == "12"则添加到新增的第二列,
//dr_staff["YF"].ToString().Trim() == "3"则添加到新增的第三列,
//直到添加了第36列。
//每行的值应该怎样添加法???
//最后返回“Dt”
//赋值
//假设取出来的DtData
Hashtable ht=new Hashtable();
//ht.Add() 从1 到36的自增 和 值 添加进去
//ht.add(1,dr_staff["YF"]);
DataTable dtData = new DataTable();
foreach(DataRow drr in dtData.Rows)
{
//哈希表匹配一下
}
dt.Rows.Add(new object[] {传递进来});
DataTable dt_staff = new M_BLL.T_Select().RtScore_StaffHZ(sfz, nf, bmbh);
foreach (DataRow dr_staff in dt_staff.Rows)
{
if (dr_staff["YF"].ToString().Trim() == "1")
{
}
}
}
}
for (int i = 0; i < 36; i++)
{
string key = data.Rows[i]ToString();
string Value = data.Rows[i+1]ToString();
把key 和value+入Hashtable
ht.Add(key , Value);
}
我加个匹配吧
ht --------------------编程问答-------------------- 读读大 --------------------编程问答-------------------- 学习中………… --------------------编程问答-------------------- 参考http://www.360doc.com/content/11/0107/12/19147_84691792.shtml --------------------编程问答-------------------- 我也喜欢大话西游2 --------------------编程问答-------------------- kan kan --------------------编程问答--------------------
+1
学习了 --------------------编程问答-------------------- 谢谢大家。 --------------------编程问答-------------------- 需求详细了,大家都能写出来,我也不凑热闹了。 --------------------编程问答-------------------- 嘟嘟嘟我来了 --------------------编程问答-------------------- 最常用的操作啊。 --------------------编程问答-------------------- 开发游戏,别有一番风味。 --------------------编程问答--------------------
。。。。。。。。。。。。。。。。。。
补充:.NET技术 , ASP.NET