Mercurial > pub > bltoolkit
comparison HowTo/Data/AdoDemo.cs @ 0:f990fcb411a9
Копия текущей версии из github
| author | cin |
|---|---|
| date | Thu, 27 Mar 2014 21:46:09 +0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f990fcb411a9 |
|---|---|
| 1 using System; | |
| 2 using System.Collections.Generic; | |
| 3 using System.Configuration; | |
| 4 using System.Data.SqlClient; | |
| 5 | |
| 6 using NUnit.Framework; | |
| 7 | |
| 8 namespace HowTo.Data | |
| 9 { | |
| 10 [TestFixture] | |
| 11 public class AdoDemo | |
| 12 { | |
| 13 // Typified definition of the Gender database field. | |
| 14 // | |
| 15 public enum Gender | |
| 16 { | |
| 17 Female, | |
| 18 Male, | |
| 19 Unknown, | |
| 20 Other | |
| 21 } | |
| 22 | |
| 23 // Business object. | |
| 24 // | |
| 25 public class Person | |
| 26 { | |
| 27 public int ID { get; set; } | |
| 28 public string FirstName { get; set; } | |
| 29 public string MiddleName { get; set; } | |
| 30 public string LastName { get; set; } | |
| 31 public /*[a]*/Gender/*[/a]*/ Gender { get; set; } | |
| 32 } | |
| 33 | |
| 34 // ADO.NET data access method. | |
| 35 // | |
| 36 public List<Person> /*[a]*/GetList/*[/a]*/(Gender gender) | |
| 37 { | |
| 38 // Map the typified parameter value to its database representation. | |
| 39 // | |
| 40 string paramValue = ""; | |
| 41 | |
| 42 switch (gender) | |
| 43 { | |
| 44 case Gender.Female: paramValue = "F"; break; | |
| 45 case Gender.Male: paramValue = "M"; break; | |
| 46 case Gender.Unknown: paramValue = "U"; break; | |
| 47 case Gender.Other: paramValue = "O"; break; | |
| 48 } | |
| 49 | |
| 50 // Read a database configuration string. | |
| 51 // | |
| 52 string cs = ConfigurationManager.ConnectionStrings["DemoConnection"].ConnectionString; | |
| 53 | |
| 54 // Create and open a database connection. | |
| 55 // | |
| 56 using (SqlConnection con = new SqlConnection(cs)) | |
| 57 { | |
| 58 con.Open(); | |
| 59 | |
| 60 // Create and initialize a Command object. | |
| 61 // | |
| 62 using (SqlCommand cmd = con.CreateCommand()) | |
| 63 { | |
| 64 cmd.CommandText = "SELECT * FROM Person WHERE Gender = @gender"; | |
| 65 cmd.Parameters.AddWithValue("@gender", paramValue); | |
| 66 | |
| 67 // Execute query. | |
| 68 // | |
| 69 using (SqlDataReader rd = cmd.ExecuteReader()) | |
| 70 { | |
| 71 List<Person> list = new List<Person>(); | |
| 72 | |
| 73 while (rd.Read()) | |
| 74 { | |
| 75 Person person = new Person(); | |
| 76 | |
| 77 // Map a data reader row to a business object. | |
| 78 // | |
| 79 person.ID = Convert.ToInt32 (rd["PersonID"]); | |
| 80 person.FirstName = Convert.ToString(rd["FirstName"]); | |
| 81 person.MiddleName = Convert.ToString(rd["MiddleName"]); | |
| 82 person.LastName = Convert.ToString(rd["LastName"]); | |
| 83 | |
| 84 switch (rd["Gender"].ToString()) | |
| 85 { | |
| 86 case "F": person.Gender = Gender.Female; break; | |
| 87 case "M": person.Gender = Gender.Male; break; | |
| 88 case "U": person.Gender = Gender.Unknown; break; | |
| 89 case "O": person.Gender = Gender.Other; break; | |
| 90 } | |
| 91 | |
| 92 list.Add(person); | |
| 93 } | |
| 94 | |
| 95 return list; | |
| 96 } | |
| 97 } | |
| 98 } | |
| 99 } | |
| 100 | |
| 101 [Test] | |
| 102 public void Test() | |
| 103 { | |
| 104 List<Person> list = GetList(Gender.Male); | |
| 105 Assert.Greater(list.Count, 0); | |
| 106 } | |
| 107 } | |
| 108 } |
