您的位置:首页 > 编程语言

DataSet相关的一些操作比较全面的代码

2008-11-25 15:09 387 查看
namespace DataSetDemo
{
class DataSetBuilder
{
private DataSet trainingset;

public DataSetBuilder()
{
CreateDataSet();
CreateDataTable();
CreateDataColumns();
CreateDataRows();
CreatePrimaryKey();

CreateUnique();
CreateChildTable();
CreateRelation();
}

public DataSet TrainingDataSet
{
get { return trainingset; }
}

private void CreateDataSet()
{
trainingset = new DataSet("TrainingDataSet");
}

private void CreateDataTable()
{
DataTable trainingtbl = new DataTable("TrainingTable");
trainingset.Tables.Add(trainingtbl);
}

private void CreateDataColumns()
{
DataTable trainingtbl = trainingset.Tables["TrainingTable"];
DataColumn col = trainingtbl.Columns.Add("TrainingCode", typeof(String));
col.AllowDBNull = false;

col = trainingtbl.Columns.Add("TrainingName", typeof(String));
col.AllowDBNull = false;

col = trainingtbl.Columns.Add("Hours", typeof(Int32));
col.AllowDBNull = false;

trainingtbl.Columns.Add("Remark", typeof(String));
}

private void CreateDataRows()
{
DataTable tbl = trainingset.Tables["TrainingTable"];

DataRow row = tbl.NewRow();
row["TrainingCode"] = "0001";
row["TrainingName"] = "Advanced English";
row["Hours"] = 500;
row["Remark"] = "Very Difficult";
tbl.Rows.Add(row);

row = tbl.NewRow();
row["TrainingCode"] = "0002";
row["TrainingName"] = "Using C++";
row["Hours"] = 300;
row["Remark"] = "For freshmen";
tbl.Rows.Add(row);

row = tbl.NewRow();
row["TrainingCode"] = "0003";
row["TrainingName"] = "Thinking in Java";
row["Hours"] = 300;
row["Remark"] = "Exciting";
tbl.Rows.Add(row);

tbl.AcceptChanges();
}

private void CreatePrimaryKey()
{
DataTable tbl = trainingset.Tables["TrainingTable"];
DataColumn[] cols = new DataColumn[1];

cols[0] = tbl.Columns["TrainingCode"];

tbl.PrimaryKey = cols;
}

public void CreateUnique()
{
/*
DataTable tbl = trainingset.Tables["TrainingTable"];
tbl.Columns["TrainingName"].Unique = true;
*/

DataTable tbl = trainingset.Tables["TrainingTable"];
if (!tbl.Constraints.Contains("Training_Name_Uni"))
{
UniqueConstraint uc = new UniqueConstraint("Training_Name_Uni", tbl.Columns["TrainingName"]);
tbl.Constraints.Add(uc);
}
}

public void CreateChildTable()
{
if (!trainingset.Tables.Contains("Lessons"))
{
DataTable tbl = new DataTable("Lessons");
tbl.Columns.Add("TrainingCode", typeof(string));
tbl.Columns.Add("SerialNo", typeof(int));
tbl.Columns.Add("Content", typeof(string));
tbl.Columns.Add("Position", typeof(string));
tbl.Columns.Add("LessonTime", typeof(DateTime));
tbl.Columns.Add("Hours", typeof(int));

DataColumn[] keycols = new DataColumn[] { tbl.Columns["TrainingCode"], tbl.Columns["SerialNo"] };
tbl.PrimaryKey = keycols;

trainingset.Tables.Add(tbl);

DataRow row = tbl.NewRow();
row["TrainingCode"] = "0001";
row["SerialNo"] = "1";
row["Content"] = "Lesson 1";
row["Position"] = "G4203";
row["LessonTime"] = DateTime.Parse("2006-10-01 9:00");
row["Hours"] = 3;
tbl.Rows.Add(row);

row = tbl.NewRow();
row["TrainingCode"] = "0001";
row["SerialNo"] = "2";
row["Content"] = "Lesson 2";
row["Position"] = "G4203";
row["LessonTime"] = DateTime.Parse("2006-10-02 9:00");
row["Hours"] = 4;
tbl.Rows.Add(row);

row = tbl.NewRow();
row["TrainingCode"] = "0002";
row["SerialNo"] = "1";
row["Content"] = "Part 1";
row["Position"] = "G4101";
row["LessonTime"] = DateTime.Parse("2006-09-22 14:00");
row["Hours"] = 2;
tbl.Rows.Add(row);

tbl.AcceptChanges();
}

}

public void CreateRelation()
{
if (!trainingset.Relations.Contains("TrainingLesson"))
{
DataTable tbl = trainingset.Tables["Lessons"];
DataTable traintbl = trainingset.Tables["TrainingTable"];

DataRelation dr = new DataRelation("TrainingLesson", traintbl.Columns["TrainingCode"], tbl.Columns["TrainingCode"]);
//DataRelation dr = new DataRelation("TrainingLesson", traintbl.Columns["TrainingCode"], tbl.Columns["TrainingCode"],false);
trainingset.Relations.Add(dr);
}

}

public DataSet CreateNewDataSet()
{
DataSet newset = new DataSet();
DataTable tbl = new DataTable("Lessons");

tbl.Columns.Add("TrainingCode", typeof(string));
tbl.Columns.Add("SerialNo", typeof(int));
tbl.Columns.Add("Content", typeof(string));
tbl.Columns.Add("Position", typeof(string));
tbl.Columns.Add("LessonTime", typeof(DateTime));
tbl.Columns.Add("Hours", typeof(int));

DataColumn[] keycols = new DataColumn[] { tbl.Columns["TrainingCode"], tbl.Columns["SerialNo"] };
tbl.PrimaryKey = keycols;

newset.Tables.Add(tbl);

DataRow row = tbl.NewRow();
row["TrainingCode"] = "0002";
row["SerialNo"] = "1";
row["Content"] = "Part One";
row["Position"] = "G4202";
row["LessonTime"] = DateTime.Parse("2006-09-22 14:00");
row["Hours"] = 2;
tbl.Rows.Add(row);

row = tbl.NewRow();
row["TrainingCode"] = "0002";
row["SerialNo"] = "2";
row["Content"] = "Part Two";
row["Position"] = "G4202";
row["LessonTime"] = DateTime.Parse("2006-09-28 14:00");
row["Hours"] = 2;
tbl.Rows.Add(row);

/*
row = tbl.NewRow();
row["TrainingCode"] = "0005";
row["SerialNo"] = "2";
row["Content"] = "Part Two";
row["Position"] = "G4202";
row["LessonTime"] = DateTime.Parse("2006-09-28 14:00");
row["Hours"] = 2;
tbl.Rows.Add(row);
*/

//newset.AcceptChanges();

return newset;
}

public DataSet CreateDataSetWithMoreSchema()
{
DataSet newset = new DataSet();
DataTable tbl = new DataTable("Lessons");

tbl.Columns.Add("TrainingCode", typeof(string));
tbl.Columns.Add("SerialNo", typeof(int));
tbl.Columns.Add("Content", typeof(string));
tbl.Columns.Add("Position", typeof(string));
tbl.Columns.Add("LessonTime", typeof(DateTime));
tbl.Columns.Add("Hours", typeof(int));
tbl.Columns.Add("Remark", typeof(string));

DataColumn[] keycols = new DataColumn[] { tbl.Columns["TrainingCode"], tbl.Columns["SerialNo"] };
tbl.PrimaryKey = keycols;

newset.Tables.Add(tbl);

DataRow row = tbl.NewRow();
row["TrainingCode"] = "0002";
row["SerialNo"] = "1";
row["Content"] = "Part One";
row["Position"] = "G4202";
row["LessonTime"] = DateTime.Parse("2006-09-22 14:00");
row["Hours"] = 2;
row["Remark"] = "The part one of 0002";
tbl.Rows.Add(row);

row = tbl.NewRow();
row["TrainingCode"] = "0002";
row["SerialNo"] = "2";
row["Content"] = "Part Two";
row["Position"] = "G4202";
row["LessonTime"] = DateTime.Parse("2006-09-28 14:00");
row["Hours"] = 2;
row["Remark"] = "The part two of 0002";
tbl.Rows.Add(row);

//newset.AcceptChanges();

return newset;
}

public void CreateEventHandler()
{
DataTable tbl = this.trainingset.Tables["TrainingTable"];
tbl.ColumnChanging += new DataColumnChangeEventHandler(TrainingTableColChanging);
}

private void TrainingTableColChanging(Object obj, DataColumnChangeEventArgs e)
{
if (e.Column.ColumnName == "Hours")
{
if ((int)e.ProposedValue <= 0)
{
e.Row.SetColumnError(e.Column, "Hours must be greater than 0.");
e.Row.RowError = "Invalid Hours.";
}
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: