数据访问
对应命名空间:System.Data.SqlClient;
SqlConnection:连接对象
SqlCommand:命令对象
SqlDataReader:读取器对象
CommandText:命令文本
增删改、查分以下几步:
1、造连接字符串
string connstring = "server=.;database=mydb;user=sa;pwd=123";
connstring:造的字符串名
server指服务器:一般是IP地址,本机可以使用点;
database指数据库名称:要访问的数据库名称
user数据库的用户名:一般是sa
pwd数据库的密码:自己设置的
2、造连接对象
SqlConnection conn = new SqlConnection(connstring);
conn:造的连接对象名
3、创建命令对象
SqlCommand cmd = conn.CreateCommand();
cmd:造的命令对象名
4、写要执行的SQL语句
4-1:查询
cmd.CommandText = "select * from Info";
//4-2:添加
cmd.CommandText = "Insert into Info values('p032','毒哥','True','n001','1987-02-02')";
//4-3:删除
cmd.CommandText = "delete from Info where Code='p032';
//4-4:更改
cmd.CommandText = "update Info set name='情方方' where Code='p032';
5、打开连接
conn.Open(); //可放在执行之前的任意位置
6、执行操作
5-1:(读取操作,返回读取器对象)
SqlDataReader dr = cmd.ExecuteReader();
//5-2.执行操作(增删改操作,返回行数)
cmd.ExecuteNonQuery();
7、处理数据
6-1:查询一条数据
if (dr.HasRows) //HasRows 判断是否有行数据 bool型,返回true/false
{
dr.Read(); //dr.Read() 是数据库数据访问指针,每执行一次都会向下走一行,如果有内容则返回true,同时dr访问为当前行数据集合,可以使用索引或是列名来访问相对应的数据
Console.WriteLine(dr[0]);
Console.ReadLine();
}
else
{
Console.WriteLine("读取失败!");
}
//6-2.查询多条数据
if (dr.HasRows)
{
while(dr.Read()) //使用while循环读取所有数据 一行数据是一个数组,一行数据里有多少列就有多少个索引
{
Console.WriteLine(dr[0]+"----"+dr[1]);
}
Console.ReadLine();
}
else
{
Console.WriteLine("没有读到数据");
Console.ReadLine();
}
8、关闭连接
conn.Close();
例1:根据用户输入一个条件查询数据
例2:让用户输入要删除的数据主键值(此方法不安全)
例:让用户输入要添加的内容