Ado .Net现在渐渐就被各种ORM代替,慢慢已经很少用了,但是在某些特殊的时候还是会被用到,因此特别再次记录一下,备以后查看。
1.查询
1.1 使用 SqlDataReader
1 using (SqlConnection cnn = new SqlConnection("data source=.;Database=test;uid=sa;password=123123")) 2 { 3 cnn.Open(); 4 using (SqlCommand cmd = cnn.CreateCommand()) 5 { 6 cmd.CommandText = "SELECT * FROM [dbo].[User]"; 7 cmd.Parameters.AddRange(new SqlParameter[] { }); 8 SqlDataReader dr = cmd.ExecuteReader(); 9 if (dr.HasRows) 10 { 11 while (dr.Read()) 12 { 13 int n = 0; 14 while (n < dr.FieldCount) //.FieldCount获取当前行的列数 15 { 16 Console.Write(dr[n] + " "); 17 n++; 18 } 19 Console.WriteLine(); 20 } 21 } 22 } 23 }
1.2 使用 SqlDataAdapter (推荐)
1 using (SqlConnection cnn = new SqlConnection("data source=.;Database=test;uid=sa;password=123123")) 2 { 3 cnn.Open(); 4 using (SqlCommand cmd = cnn.CreateCommand()) 5 { 6 cmd.CommandText = "SELECT * FROM [dbo].[User]"; 7 cmd.Parameters.AddRange(new SqlParameter[] { }); 8 SqlDataAdapter apter = new SqlDataAdapter(cmd); 9 DataSet ds = new DataSet(); 10 apter.Fill(ds); 11 return ds.Tables[0]; 12 } 13 }
1.3 简单比较
第一种方法要获取查询出的数据需要使用类似迭代器的循环来遍历,而第二种方法可以直接获取完整的数据集并保存到DataTable中,更便于后续处理,个人更喜欢第二种使用SqlDataAdapter的方法。
2.更新&删除&添加
1 using (SqlConnection cnn = new SqlConnection("data source=.;Database=test;uid=sa;password=123123")) 2 { 3 cnn.Open(); 4 using (SqlCommand cmd = cnn.CreateCommand()) 5 { 6 cmd.CommandText = "INSERT INTO [User](UserName,Password) VAlUES('yedan','123123')"; 7 cmd.Parameters.AddRange(new SqlParameter[] { }); 8 return cmd.ExecuteNonQuery(); 9 } 10 }