**三层结构 Dataset
1 三层结构 Dataset
2 用户接口层
3 //构建数据集并向下传递
4 private void btnSave_Click(object sender, EventArgs e)
5 {
6 //创建一个新的空班级DataSet
7 DataSet dsClass = new DataSet();
8 //创建班级表
9 DataTable dtClass = new DataTable("Class");
10 //创建班级名称列
11 DataColumn className = new DataColumn("ClassName",typeof(string));
12 className.MaxLength = 50;
13 className.ColumnName = "ClassName";
14 className.DataType = System.Type.GetType("System.String");
15
16 //创建年级ID列
17 DataColumn gradeID = new DataColumn("GradeID",typeof(int));
18 //将定义好列添加到班级表中
19 dtClass.Columns.Add(className);
20 dtClass.Columns.Add(gradeID);
21 //创建一个新的数据行
22 DataRow drClass = dtClass.NewRow();
23 drClass["className"] = this.txtClassName.Text.Trim();
24 drClass["gradeID"]
25 = gradeManager.GetGradeIDByGradeName(this.cboGrade.Text.Trim());
26 //将新的数据行插入班级表中
27 dtClass.Rows.Add(drClass);
28 //将班级表添加到DataSet中
29 dsClass.Tables.Add(dtClass);
30 //判断输入班级名称是否为空
31 if (!string.IsNullOrEmpty(this.txtClassName.Text.Trim()))
32 {
33 //提示信息
34 string message = string.Empty;
35 //调用增加班级信息方法
36 message= classManager.AddClass( dsClass);
37 MessageBox.Show(message, "提交提示",
38 MessageBoxButtons.OK, MessageBoxIcon.Information);
39 }
40 else
41 MessageBox.Show("请输入班级名称!", "提交提示",
42 MessageBoxButtons.OK, MessageBoxIcon.Information);
43 }
44
45 业务逻辑层
46 //读取分析Dataset中数据 并向下传递执行数据库查询
47 public string AddClass( DataSet ds)
48 {
49 //返回信息
50 string message = string.Empty;
51 //新增班级名称
52 string className = string.Empty;
53 //新增班级ID
54 int classID = 0;
55 className = ds.Tables["Class"].Rows[0]["className"].ToString();
56 //调用数据访问层通过班级名称得到班级ID
57 classID = classService.GetClassIDByClassName(className);
58 if (classID > 0)
59 message = "该年级的此班级已经存在!";
60 else
61 {
62 //调用数据访问层新增班级方法
63 classService.AddClass(ds);
64 message = "班级增加成功!";
65 }
66 return message;
67 }
68
69 //数据访问层
70 //读取Dataset中数据提交SQL
71 public void AddClass( DataSet dsClass)
72 {
73 SqlConnection conn
74 = new SqlConnection(connString);
75 SqlCommand objCommand
76 = new SqlCommand(dboOwner + ".usp_InsertClass", conn);
77 objCommand.CommandType
78 = CommandType.StoredProcedure;
79 objCommand.Parameters.Add
("@ClassName", SqlDbType.NVarChar, 50).Value
80 = dsClass.Tables["Class"].Rows[0]["ClassName"];
81 objCommand.Parameters.Add("@GradeID", SqlDbType.Int).Value
82 = dsClass.Tables["Class"].Rows[0]["GradeID"];
83 conn.Open();
84 objCommand.ExecuteNonQuery();
85 conn.Close();
86 conn.Dispose();
87 }
2 用户接口层
3 //构建数据集并向下传递
4 private void btnSave_Click(object sender, EventArgs e)
5 {
6 //创建一个新的空班级DataSet
7 DataSet dsClass = new DataSet();
8 //创建班级表
9 DataTable dtClass = new DataTable("Class");
10 //创建班级名称列
11 DataColumn className = new DataColumn("ClassName",typeof(string));
12 className.MaxLength = 50;
13 className.ColumnName = "ClassName";
14 className.DataType = System.Type.GetType("System.String");
15
16 //创建年级ID列
17 DataColumn gradeID = new DataColumn("GradeID",typeof(int));
18 //将定义好列添加到班级表中
19 dtClass.Columns.Add(className);
20 dtClass.Columns.Add(gradeID);
21 //创建一个新的数据行
22 DataRow drClass = dtClass.NewRow();
23 drClass["className"] = this.txtClassName.Text.Trim();
24 drClass["gradeID"]
25 = gradeManager.GetGradeIDByGradeName(this.cboGrade.Text.Trim());
26 //将新的数据行插入班级表中
27 dtClass.Rows.Add(drClass);
28 //将班级表添加到DataSet中
29 dsClass.Tables.Add(dtClass);
30 //判断输入班级名称是否为空
31 if (!string.IsNullOrEmpty(this.txtClassName.Text.Trim()))
32 {
33 //提示信息
34 string message = string.Empty;
35 //调用增加班级信息方法
36 message= classManager.AddClass( dsClass);
37 MessageBox.Show(message, "提交提示",
38 MessageBoxButtons.OK, MessageBoxIcon.Information);
39 }
40 else
41 MessageBox.Show("请输入班级名称!", "提交提示",
42 MessageBoxButtons.OK, MessageBoxIcon.Information);
43 }
44
45 业务逻辑层
46 //读取分析Dataset中数据 并向下传递执行数据库查询
47 public string AddClass( DataSet ds)
48 {
49 //返回信息
50 string message = string.Empty;
51 //新增班级名称
52 string className = string.Empty;
53 //新增班级ID
54 int classID = 0;
55 className = ds.Tables["Class"].Rows[0]["className"].ToString();
56 //调用数据访问层通过班级名称得到班级ID
57 classID = classService.GetClassIDByClassName(className);
58 if (classID > 0)
59 message = "该年级的此班级已经存在!";
60 else
61 {
62 //调用数据访问层新增班级方法
63 classService.AddClass(ds);
64 message = "班级增加成功!";
65 }
66 return message;
67 }
68
69 //数据访问层
70 //读取Dataset中数据提交SQL
71 public void AddClass( DataSet dsClass)
72 {
73 SqlConnection conn
74 = new SqlConnection(connString);
75 SqlCommand objCommand
76 = new SqlCommand(dboOwner + ".usp_InsertClass", conn);
77 objCommand.CommandType
78 = CommandType.StoredProcedure;
79 objCommand.Parameters.Add
("@ClassName", SqlDbType.NVarChar, 50).Value
80 = dsClass.Tables["Class"].Rows[0]["ClassName"];
81 objCommand.Parameters.Add("@GradeID", SqlDbType.Int).Value
82 = dsClass.Tables["Class"].Rows[0]["GradeID"];
83 conn.Open();
84 objCommand.ExecuteNonQuery();
85 conn.Close();
86 conn.Dispose();
87 }
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
DAL层读取数据填充Dateset
1 ///summey
2 ///读取
3 ///summey
4 DataSet ds = new DataSet();
5 SqlConnection conn = new SqlConnection(connString);
6 SqlDataAdapter objAdapter = new SqlDataAdapter(dboOwner + ".usp_SelectStudentsPartInfo", conn);
7 objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
8 objAdapter.Fill(ds, "studentTable");
9 conn.Close();
10 conn.Dispose();
2 ///读取
3 ///summey
4 DataSet ds = new DataSet();
5 SqlConnection conn = new SqlConnection(connString);
6 SqlDataAdapter objAdapter = new SqlDataAdapter(dboOwner + ".usp_SelectStudentsPartInfo", conn);
7 objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
8 objAdapter.Fill(ds, "studentTable");
9 conn.Close();
10 conn.Dispose();
11 return ds;