标签:
// 2015/07/05 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace DataReaderSample { class Program { static void Main(string[] args) { // 集合,强类型的集合 System.Collections.Generic.List<StudentModel> list = new List<StudentModel>(); string connectionString = "server=.;database=BookSample;uid=LJK;pwd=123456"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string sql = "select ID,StuName ,phone from students"; SqlCommand cmd = new SqlCommand(sql,connection); // 通过数据库中的游标来辅助查询结果 SqlDataReader reader = cmd.ExecuteReader(); // DataReader 通过 Read 方法来读数据库中的记录 while (reader.Read()) { Console.WriteLine("成功读取了一条记录"); // 读取的数据保存在 DataReader 对象内 int stuId = reader.GetInt32(0); string stuName = reader.GetString(1); string Phone = reader.GetString(2); //上面的程序还可以用下面的代码代替(第二种方法) //这种方法得出的是object类型,所以要强制转换一下 //int stuId = (int)reader[0];(值类型) //string stuName = reader[1] as string;(引用类型) //string Phone = reader[2]; //另外一种方式,下标为字段名,即使select语句修改也无影响 //string stuName = reader["StuName"] as string;(引用类型) // 将读取的数据表示为对象实例 StudentModel model = new StudentModel(); model.StuID = stuId; model.Stuname = stuName; model.phone = Phone; list.Add(model); // 输出字段 // Console.WriteLine("StuId:{0} StuName = {1} Phone = {2}",stuId,stuName,Phone); // Console.WriteLine("StuId:{0} StuName = {1} ", stuId, stuName); } // 游标也必须关闭 reader.Dispose(); } // 当读取完成的时候,我们得到一个集合,其中包含若干个的对象实例 // 这些对象实例的数据来自数据库 foreach (StudentModel model in list) { Console.WriteLine("{0} {1} {2}",model.StuID,model.Stuname,model.phone); } Console.ReadKey(); } } } /* 数据库中的数据是 null,与.NET下的null不一致 数据库中的null在.NET环境下,专门使用一个特殊的类型来表示 System.DBNull.Value 可用如下方法解决: string region = null; if(!reader.IsDBNull(3)) { region = reader.GetString(3); } //假如为整形方法如下: 可空类型,只能用于值类型 int? reportsTo -= null; //对于可控类型来说,现在也有两个状态 //reportsTo.HasValue //reportsTo.Value if(!reader.IsDBNull(4)) { reportsTo = reader.GetInt32(4); } */ //另一个类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataReaderSample { public class StudentModel { private int stuId; public int StuID { get { return stuId;} set { stuId = value;} } public string Stuname { set; get; } public string phone { set; get; } } } //仅仅读取第一行第一列的值方法如下 // 2015/07/05 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace DataReaderSample { class Program { static void Main(string[] args) { string connectionString = "server=.;database=BookSample;uid=LJK;pwd=123456"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string sql = "select ID,StuName ,phone from students"; SqlCommand cmd = new SqlCommand(sql, connection); //仅仅读取第一行第一列的值 object obj = cmd.ExecuteScalar(); //如果一条数据都没有读到,那么返回null if (obj != null) { int id = (int)obj; Console.WriteLine("obj = {0}", id); } else { Console.WriteLine("没有读到数据!"); } // 通过数据库中的游标来辅助查询结果 //SqlDataReader reader = cmd.ExecuteReader(); // DataReader 通过 Read 方法来读数据库中的记录 //if (reader.Read()) //{ // int stuid = reader.GetInt32(0); // Console.WriteLine(stuid); //} //reader.Dispose(); } Console.ReadKey(); } } }
标签:
原文地址:http://www.cnblogs.com/IamJiangXiaoKun/p/4622556.html