代码改变世界

ADO.Net 数据库访问技术

2015-04-08 23:14  若藜520  阅读(290)  评论(0编辑  收藏  举报

1.在web.Config配置文件中设置连接字符串

<connectionStrings>
    <add name="connString" connectionString="Data Source=localhost;Initial Catalog=Stud;Integrated Security=false;uid=sa;pwd=123456"/>
 </connectionStrings>

 

取得连接字符串的方法

String strconn = ConfigurationManager.ConnectionStrings["connString"].ToString();

 

或者

<appSettings>
    <add key="connString" value="Data Source=localhost;Initial Catalog=Stud;Integrated Security=false;uid=sa;pwd=123456"/>
  </appSettings>
    

得连接字符串的方法

 String strconn = ConfigurationManager.AppSettings["connString"].ToString();

Data Source或者Server、Address:数据库服务器名称;Initial Catalog或者DataBase:数据库名称Integrated Security默认等于false,等于true时使用Windows身份验证,不必输入用户名,密码。

 

2.Ado.Net 数据访问对象(sql.net  添加引用using System.Data.SqlClient)

2.1 sqlConnection对象

常用属性:

ConnectionString  数据库连接字段

ConnectionTimeout  连接超时时间

Database  所连接的数据库

DataSource  服务器

Provider  所使用的数据提供程序(Data Provider)

State  数据库连接的状态,有以下几种状态

ConnectionStatus.Broken 连接中断

ConnectionStatus.Closed 连接关闭

ConnectionStatus.Connecting 正在连接

ConnectionStatus.Executing 连接对象正在执行命令

ConnectionStatus.Fetching 连接对象正在检索数据

ConnectionStatus.Open  连接已打开

常用方法:

Open,Close打开关闭连接

CreateCommand 返回一个与SqlConnection关联的SqlCommand对象

ChangeDataBase 改变连接的数据库

 

2.2SqlCommand对象

常用属性:

CommandText:数据库执行语句

CommandTimeout 执行超时时间

Parameters 参数集合

 String mySql = "SELECT * FROM tblDepartment WHERE ID=@id";
            SqlParameter parameter = new SqlParameter("@id", 1001);
            SqlCommand cmd = new SqlCommand(mySql,myConn);
            cmd.Parameters.Add(parameter);
或者

SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@name", "Pudding"), new SqlParameter("@ID", "1") };
cmd.Parameters.AddRange(paras);

 

Connection 对应的连接对象

CommandType 用于指示如何解释CommandText有以下几种取值:

CommandType.StoredProcedure 此时CommandText 应该取值为存储过程的名称

CommandType.TableDirect  此时CommandText为要访问的表名

CommandType.Text  默认。Sql文本命令,在此命令中不能使用?占位符

 

常用方法

CreateParameter 创建SqlParameter实例

ExecuteNonQuery  只返回受影响的行数

ExecuteScalar  返回查询结果第一行第一列的值,忽略其他行,一般用于只返回一个查询结果的查询语句

ExecuteReader 返回一个SqlReader对象

常用构造函数

SqlCommand(),SqlCommand(cmdText),SqlCommand(cmdText,conn)

 

3 SqlDataReader对象  使用DataReader对象可以从数据库中得到只读的,只能向前的数据流,且同一时间内存中只有一条数据,可以提高程序性能,减少系统开销

常用属性:

FieldCount 当前行中的列数

IsClosed 支出对象是否关闭

RecordsAffected 执行SQL语句时受影响的行数

常用方法

Read返回布尔值,将SqlDataReader推进到下一行,开始时SqlDataReader 指向数据集第一条记录之前,需用Read方法把数据推进到下一条记录并判断是否还有未读的记录

Close 关闭对象

IsDBNull 用于检查返回的列是否包含NULL值

GetBoolean(int i),GetString(int i),GetInt32(int i),GetByte(int i),GetDouble(int i),GetDateTime(int i)

 SqlCommand cmd = new SqlCommand(mySql,myConn);
            SqlDataReader dr = cmd.ExecuteReader();
            while(dr.Read())
            {
                ListBox1.Items.Add("院系    专业");
                ListBox1.Items.Add(String.Format("{0}  {1}", dr.GetString(0), dr["专业"].ToString()));//两种访问字段的方法1.使用对应的get方法+index;2.使用字段名或列序号做下标
            }