标签:
数据访问分为三个部分:(1)创建链接(2)创建与执行命令(3)读取或准备相关数据
一,需要引用的命名空间
using data;
using data.SqlClient;
二,创建与数据库的链接——SqlConnection(链接类)
1,链接字符串:server=目标服务器的IP地址;database=数据库名;uid=数据库的登录名;pwd=数据库的登录密码
server=.; database=mydb; uid=sa; pwd=123
2,实例化——构造
SqlConnection conn=new SqlConnection(链接字符串);
3,属性
state:用来描述链接当前的状态 closed:链接处于关闭状态 open:链接处于打开状态
4,方法
open():打开链接
close():关闭链接
5,案例
(1)定义链接字符串。
string connectionString = "server=.;database=mydb;uid=sa;pwd=123";
(2)构造链接对象
SqlConnection conn = new SqlConnection(connectionString);
或
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
(3)打开链接
conn.Open();
(4)关闭链接
conn.Close();
三,向数据传递sql语句或存储过程并执行——sqlcommand(命令类)
1,构造
SqlCommand cmd=conn.CreateCommand();
SqlCommand cmd=new SqlCommand();
2,属性
connection:(SqlConnection类型)指定通过哪个链接对象来操作数据库
CommandText:(string类型)要执行的sql语句或存储过程名
3,方法
ExecuteNonQuery():执行非查询命令,返回影响的行数。一般用来执行增删改的语句
ExecuteReader():执行读取命令,返回一个读取器对象。一般用来执行查询语句
4,案例
string connectionString = "server=.;database=mydb;uid=sa;pwd=123";
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
//操作数据库
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into student values(‘s001‘,‘张三‘,‘1‘,‘清华大学‘,‘1990-6-1‘)";
cmd.ExecuteNonQuery();
conn.Close();
四,从查询的结果集中把数据逐个读取出来——SqlDataReader(读取器类)
1,构造
只有唯一的一种构造方式
SqlDataReader dr=cmd.ExecuteReader();
说明:只读,只向前,读取器工具,每次只读取一条记录,内存中只占一条记录的空间
2,属性
HasRows:返回值为bool类型,判断是否有数据可读,是否查出数据来了
3,方法
Read():返回值为bool类型,把结果集中当前行的内容读取到内存中的DataReader中来,读出来了返回true,没有数据可读返回false
在使用SqlDataReader读取某列数据时,必须先使用Read()方法把数据先取到内存中的SqlDataReader中。
从SqlDataReader中读取某列值的时候,使用方法:
(1)dr[列的下标/列的索引号]
(2)dr["列名"]
(3)dr.GetInt(索引号) dr.GetString(索引号) ...
4,案例
Console.Write("用户名:");
string uid = Console.ReadLine();
Console.Write("密码:");
string pwd = Console.ReadLine();
//操作数据库
SqlConnection conn = new SqlConnection("server=.;database=mydb;uid=sa;pwd=123");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from Login where UserName=‘"+uid+"‘ and password=‘"+pwd+"‘ "; //查询
SqlDataReader dr = cmd.ExecuteReader(); //生成读取器对象。
if (dr.HasRows)
{
Console.WriteLine("OK");
}
else
{
Console.WriteLine("Error");
}
conn.Close();
标签:
原文地址:http://www.cnblogs.com/William-1234/p/4479619.html