黑马程序员--ADO.Net基础

来源:互联网 发布:网络兼职打字日赚100 编辑:程序博客网 时间:2024/04/27 19:21

---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------

 

     连接字符串

1)项目中内嵌mdf文件

ADO.Net中提供了对各种不同数据库的统一操作接口。

直接在项目中内嵌mdf文件的方式使用MSSQLServer数据库(基于服务的数据库),其连接字符串为:

"Data Source=(local);AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"Main()方法中前置的代码为:string dataDir = AppDomain.CurrentDomain.BaseDirectory;if (dataDir.EndsWith(@"\bin\Debug") || dataDir.EndsWith(@"\bin\Release")){    dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;    AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);}

2)SQL Server身份验证

"Data Source=(local);Initial Catalog=DB_Login;User ID=sa;Password=123456"或者"Server=(local);Database=DB_Login;Uid=sa;Pwd=123456"

注:DataSource/ServerInitialCatalog/DatabaseUser ID/UidPassword/Pwd都可互换

     ADO.Net连接数据库

ADO.Net中的连接等资源都实现了IDisposable接口,可以使用using进行资源的管理

1) 连接数据库

using (SqlConnection conn = new SqlConnection("连接字符串") ){conn.Open();......}或者:SqlConnection conn = new SqlConnection("连接字符串");conn.Open();……conn.Close();conn.Dispose();

2) 对数据库里的数据进行插入、更新、删除

using (SqlConnection conn = new SqlConnection("连接字符串")){    conn.Open();    using (SqlCommand cmd = conn.CreateCommand())    {        cmd.CommandText = "SQL插入、更新、删除语句";        cmd.ExecuteNonQuery();    }}

3) 对数据库里的数据进行查询

1ExecuteScalar():查询结果集中的第一行第一列的数据,返回值类型为object

using (SqlConnection conn = new SqlConnection("连接字符串")){    conn.Open();    using (SqlCommand cmd = conn.CreateCommand())    {        cmd.CommandText = "SQL查询语句";        cmd.ExecuteScalar();    }}

2ExecuteReader():查询结果集中的多行的数据

每调用一次ExecuteReader()Read()方法,就往下查询一次结果集中的一行并且Read()返回true,只到查询到结果集的最后一行之后,Read()返回false

using (SqlConnection conn = new SqlConnection("连接字符串")){    conn.Open();    using (SqlCommand cmd = conn.CreateCommand())    {        cmd.CommandText = "SQL查询语句";        using (SqlDataReader reader = cmd.ExecuteReader())         {            while (reader.Read())            {                //GetOrdinal():在结果集中,根据指定的列名称获取列序号                int columnOrdinal = reader.GetOrdinal("列名称");                //GetString():在结果集中,根据指定的列序号获取列字符串形式的值                string columnString = reader.GetString(columnOrdinal);            }        }    }}

(3)DataSet和SqlDataAdapter:查询结果集中的多行的数据

using (SqlConnection conn = new SqlConnection("连接字符串")){    conn.Open();    using (SqlCommand cmd = conn.CreateCommand())    {        cmd.CommandText = "SQL查询语句";        //将结果集交给数据适配器(SqlDataAdapter)处理        SqlDataAdapter adapter = new SqlDataAdapter(cmd);        //创建一个数据集(DataSet)        DataSet ds = new DataSet();        //数据适配器将结果集填充到数据集中        adapter.Fill(ds);    }}


---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------

原创粉丝点击