/// <summary> /// HowTO: 3. 基本数据库操作(执行存储过程) /// </summary> static void HowTO_3() { Console.WriteLine("HowTO: 3. 调用存储过程, 返回DataSet"); TestAbstractDA da = new TestAbstractDA(); StoreProcedureInfo info = da.TestStoreProcedure("p_test", 2, DateTime.Now); Console.WriteLine("存储过程p_test的返回值:{0}", info.ReturnCode); foreach (string s in info.OutputParameters.Keys) { Console.WriteLine("\t输出参数:{0}:{1}", s, info.OutputParameters[s]); } if (info.DataSet != null && info.DataSet.Tables.Count > 0) { Console.WriteLine("\tDataSet:"); foreach (DataColumn c in info.DataSet.Tables[0].Columns) { Console.Write("\t{0}", c.ColumnName); } Console.WriteLine(); foreach (DataRow r in info.DataSet.Tables[0].Rows) { foreach (DataColumn c in info.DataSet.Tables[0].Columns) { Console.Write("\t{0}", r[c]); } Console.WriteLine(); } } }
/// <summary> /// HowTO: 5. Transaction, 支持两个不同数据库连接之间的事务 /// </summary> static void HowTO_5() { Console.WriteLine("HowTO: 5. Transaction, 支持两个不同数据库连接之间的事务"); TestAbstractDA da1 = new TestAbstractDA(); TestAbstractTable da2 = new TestAbstractTable(); try { using (TransScope scope = new TransScope(da1, da2)) { da1.DeleteAll(); da2.DeleteAll(); int id1 = da1.Insert("1", "1"); int id2 = da2.Insert("2", "2"); da1.Insert("3", "3"); da2.Insert("4", "4"); Console.WriteLine("da1:"); foreach (TestUser u in da1.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } Console.WriteLine("da2:"); foreach (TestUser u in da2.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } da1.Update(id1, "修改", "修改"); da2.Update(id2, "修改", "修改"); Console.WriteLine("da1修改后:"); foreach (TestUser u in da1.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } Console.WriteLine("da1修改后:"); foreach (TestUser u in da2.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } scope.Commit(); } } catch (DatabaseException ex) { Console.WriteLine(ex.Message); Console.WriteLine("SQL:" + ex.SQL); } }
/// <summary> /// HowTO: 9. 基本数据库操作(返回一个字符串列表) /// </summary> static void HowTO_9() { Console.WriteLine("HowTO: 9. 返回一个字符串列表"); using (TestAbstractDA da = new TestAbstractDA()) { List <string> list = da.TestListString(); list.ForEach(delegate(string s) { Console.WriteLine(s); }); } }
/// <summary> /// HowTO: 1. 基本数据库操作(从AbstractDA派生) /// </summary> static void HowTO_1() { Console.WriteLine("HowTO: 1. 从AbstractDA派生的数据库操作"); TestAbstractDA da = new TestAbstractDA(); da.DeleteAll(); int UserID = da.Insert("测试1", "测试1"); TestUser u = da.SelectUserByUserId(UserID); Console.WriteLine("插入T_TEST: ID={0},UserName={1}, UserPass={2}", u.ID, u.UserName, u.UserPass); da.Update(u.ID, "修改之后的用户名", "修改之后的用户名"); u = da.SelectUserByUserId(UserID); Console.WriteLine("更新T_TEST: ID={0},UserName={1}, UserPass={2}", u.ID, u.UserName, u.UserPass); }
/// <summary> /// HowTO: 1. �������ݿ����(��AbstractDA����) /// </summary> static void HowTO_1() { Console.WriteLine("HowTO: 1. ��AbstractDA���������ݿ����"); TestAbstractDA da = new TestAbstractDA(); da.DeleteAll(); int UserID = da.Insert("����1", "����1"); TestUser u = da.SelectUserByUserId(UserID); Console.WriteLine("����T_TEST: ID={0},UserName={1}, UserPass={2}", u.ID, u.UserName, u.UserPass); da.Update(u.ID, "��֮����û���", "��֮����û���"); u = da.SelectUserByUserId(UserID); Console.WriteLine("����T_TEST: ID={0},UserName={1}, UserPass={2}", u.ID, u.UserName, u.UserPass); }
/// <summary> /// HowTO: 7. 基本数据库操作(执行存储过程返回泛型列表) /// </summary> static void HowTO_7() { Console.WriteLine("HowTO: 7. 执行存储过程返回泛型列表"); TestAbstractDA da = new TestAbstractDA(); StoreProcedureList <TestUser> info = da.TestStoreProcedureList("p_test", 2); Console.WriteLine("存储过程p_test的返回值:{0}", info.ReturnCode); foreach (string s in info.OutputParameters.Keys) { Console.WriteLine("\t输出参数:{0}:{1}", s, info.OutputParameters[s]); } foreach (TestUser u in info.List) { Console.WriteLine("\tID={0}, UserName={1}, UserPass={2}", u.ID, u.UserName, u.UserPass); } }
/// <summary> /// HowTO: 9. �������ݿ����(����һ���ַ����б�) /// </summary> static void HowTO_9() { Console.WriteLine("HowTO: 9. ����һ���ַ����б�"); using (TestAbstractDA da = new TestAbstractDA()) { List<string> list = da.TestListString(); list.ForEach(delegate(string s) { Console.WriteLine(s); }); } }
/// <summary> /// HowTO: 7. �������ݿ����(ִ�д洢���̷��ط����б�) /// </summary> static void HowTO_7() { Console.WriteLine("HowTO: 7. ִ�д洢���̷��ط����б�"); TestAbstractDA da = new TestAbstractDA(); StoreProcedureList<TestUser> info = da.TestStoreProcedureList("p_test", 2); Console.WriteLine("�洢����p_test�ķ���ֵ:{0}", info.ReturnCode); foreach (string s in info.OutputParameters.Keys) { Console.WriteLine("\t�������:{0}:{1}", s, info.OutputParameters[s]); } foreach (TestUser u in info.List) { Console.WriteLine("\tID={0}, UserName={1}, UserPass={2}", u.ID, u.UserName, u.UserPass); } }
/// <summary> /// HowTO: 5. Transaction, ֧��������ͬ���ݿ�����֮������� /// </summary> static void HowTO_5() { Console.WriteLine("HowTO: 5. Transaction, ֧��������ͬ���ݿ�����֮�������"); TestAbstractDA da1 = new TestAbstractDA(); TestAbstractTable da2 = new TestAbstractTable(); try { using (TransScope scope = new TransScope(da1, da2)) { da1.DeleteAll(); da2.DeleteAll(); int id1 = da1.Insert("1", "1"); int id2 = da2.Insert("2", "2"); da1.Insert("3", "3"); da2.Insert("4", "4"); Console.WriteLine("da1:"); foreach (TestUser u in da1.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } Console.WriteLine("da2:"); foreach (TestUser u in da2.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } da1.Update(id1, "��", "��"); da2.Update(id2, "��", "��"); Console.WriteLine("da1�ĺ�:"); foreach (TestUser u in da1.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } Console.WriteLine("da1�ĺ�:"); foreach (TestUser u in da2.SelectAll()) { Console.WriteLine("\tID={0},UserName={1},UserPass={2}", u.ID, u.UserName, u.UserPass); } scope.Commit(); } } catch (DatabaseException ex) { Console.WriteLine(ex.Message); Console.WriteLine("SQL:" + ex.SQL); } }
/// <summary> /// HowTO: 3. �������ݿ����(ִ�д洢����) /// </summary> static void HowTO_3() { Console.WriteLine("HowTO: 3. ���ô洢����, ����DataSet"); TestAbstractDA da = new TestAbstractDA(); StoreProcedureInfo info = da.TestStoreProcedure("p_test", 2,DateTime.Now); Console.WriteLine("�洢����p_test�ķ���ֵ:{0}", info.ReturnCode); foreach (string s in info.OutputParameters.Keys) { Console.WriteLine("\t�������:{0}:{1}", s, info.OutputParameters[s]); } if (info.DataSet != null && info.DataSet.Tables.Count > 0) { Console.WriteLine("\tDataSet:"); foreach (DataColumn c in info.DataSet.Tables[0].Columns) { Console.Write("\t{0}", c.ColumnName); } Console.WriteLine(); foreach (DataRow r in info.DataSet.Tables[0].Rows) { foreach (DataColumn c in info.DataSet.Tables[0].Columns) { Console.Write("\t{0}", r[c]); } Console.WriteLine(); } } }