我在开发一个统计程序,遇到这样一个问题:
我已在数据库中执行SELECT QuestionID,Answer1 FROM Answers;来得到一个DataSet。显然,这个DataSet属于System.Data.DataSet,具有一个表(Answers),这个表有两个列(QuestionID和Answer1)。我在自己的项目中添加了一个自己的 DataSet1 对象(项目名.DataSet1,不是System.Data.DataSet),并创造了一个实例。现在我希望把查询得到的Dataset中的数据全部复制到DataSet1的那个实例中去,但列名需要更改,即将Answer1改为Answer。请问该如何操作?
谢谢!
我已在数据库中执行SELECT QuestionID,Answer1 FROM Answers;来得到一个DataSet。显然,这个DataSet属于System.Data.DataSet,具有一个表(Answers),这个表有两个列(QuestionID和Answer1)。我在自己的项目中添加了一个自己的 DataSet1 对象(项目名.DataSet1,不是System.Data.DataSet),并创造了一个实例。现在我希望把查询得到的Dataset中的数据全部复制到DataSet1的那个实例中去,但列名需要更改,即将Answer1改为Answer。请问该如何操作?
谢谢!
DataTable dt = ds.Tables[0].Clone();//复制一个原表的结构,与DataRow字段与类型相同
for (int i = 0; i < dr.Length; i++)
{
dt.ImportRow(dr[i]);
//不同名,可能先drNew=ds.NewRow()要每行每个字段的给drNew赋值了
//然后再ds.AddRow()
}
DataTable dt = DataSet0.Tables["Answers"];
dt.Columns["Answer1"].ColumnName = "Answer";
DataSet DataSet1 = new DataSet();
DataSet1.Tables.Add(dt); 随便写一个 你试试看行不行 没有测试过
改列名就得循环了
DataTable Answers = new DataTable();
Answers.Columns.Add("QuestionID");
Answers.Columns.Add("Answers1");
DataRow dr = Answers.NewRow();
dr["QuestionID"] = "102938382832";
dr["Answers1"] = "正常";
Answers.Rows.Add(dr);
dr = Answers.NewRow();
dr["QuestionID"] = "102374834812";
dr["Answers1"] = "正常";
Answers.Rows.Add(dr);
dr = Answers.NewRow();
dr["QuestionID"] = "102938476366";
dr["Answers1"] = "不正常";
Answers.Rows.Add(dr);
dt.Columns["Answers1"].ColumnName = "Answers";
#region构造测试DataSet0
DataSet DataSet0 = new DataSet();
DataTable Answers = new DataTable();
Answers.Columns.Add("QuestionID");
Answers.Columns.Add("Answers1");
DataRow dr = Answers.NewRow();
dr["QuestionID"] = "102938382832";
dr["Answers1"] = "正常";
Answers.Rows.Add(dr);
dr = Answers.NewRow();
dr["QuestionID"] = "102374834812";
dr["Answers1"] = "正常";
Answers.Rows.Add(dr);
dr = Answers.NewRow();
dr["QuestionID"] = "102938476366";
dr["Answers1"] = "不正常";
Answers.Rows.Add(dr);
Answers.TableName = "Answers";
DataSet0.Tables.Add(Answers);
#endregion //处理部分
DataSet DataSet1 = new DataSet();
DataTable dt = new DataTable();
dt = DataSet0.Tables["Answers"].Copy();
dt.Columns["Answers1"].ColumnName = "Answers";
dt.TableName = "Answers";
DataSet1.Tables.Add(dt);
直接拿去用吧 已经写好了
http://www.cnblogs.com/GoGoagg/archive/2008/07/28/1244308.html楼主希望的是深 copy还是浅copy呢?
我觉得只要在程序中创建一个新的表,然后将取到的表复制到这个表中,接着修改这个新表达字段,最后放进LZ要放入的DATASET中OK?
别说我小白