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.使用字段名或列序号做下标 }