第四部分:.NET数据库开发
1.什么是ADO.NET?
提供对数据库数据源的访问,主要用来连接操作数据。
2.ADO.NET的重要对象:
Connection对象:数据库连接对象,用于服务器连数据库
细分类型:
SqlConnection与SQL Server数据库连接,SqlConnection con =new SqlConnection("Server=服务器名;UserId=用户;Pwd=密码;DataBase=数据库名称");
OleDbConnection对象,连接包含有让OleDb驱动程序的任何数据源,如SQL Server,Access,Excel,Oracle等
OdbcConnection
OracleConnection
Command对象:用于返回/修改数据,运行存储过程以及操作数据库
跟Connection一样也有四种操作对象,其中Command对象的主要方法:ExcuteNonQuery()较常用,ExcuteReader(),ExcuteScalar()
DataReader对象:用来从数据库读数据,读单条数据
DataSet对象:数据容器,可以暂存数据库表。相当在内存中建了一个小的关系数据库
DataAdapter对象:提供连接DataSet对象和数据源的桥梁,用来操作DataSet的。
用法
string sqlStr="";//sql语句内容
Connection con=null;//数据库连接对象
DataSet myDs = new DataSet();
SqlDataAdapter myDa=new SqlDataAdapter(sqlStr,con);
myDa.Fill(myDs);
SQLServer 2014学习:
数据库管理工具:Master SQL Server Management Studio
一般使用这个去操作数据库,登入的时候,“服务器名称”没有选项的话就填写"."
创建数据库:在数据库管理页面的“数据库”选项右键“新建数据库”
建表学习:
数据完整性: 可靠性+准确性=数据完整性
常用完整性:
年龄必须是数字
身份证号必须是18位
性别只能是男/女,对行数据的约束
不同出现重复的两条数据,对行数据的约束
学生的出生日期必须早于入学日期,对行数据的约束
完整性约束:
域完整性:对列数据的约束,如上面年龄/身份证要求内容合法
实体完整性:对数据行的约束,约束方法:唯一约束,主键约束,标识列。
引用完整性:某列m的值来自于另一张表A的内容,该列的值不能超出A表m列所有值
自定义完整:用触发器,具体内容后面学
关于数据库的数据文件:
数据文件:
主数据文件 *.mdf 有且只能有一个
次要数据文件 *.ndf 有0-N多个
日志文件:
*.ldf 必须有一个或多个
重要:刚装完SQLServer只能通过Windows登录方式链接数据库怎么办?
按照http://blog.csdn.net/zjx86320/article/details/9745669
里面的步骤一步步操作,到修改“sa”用户的那一步,并且将密码改为自己熟悉的密码。流程走完以后就可以用 SQL Server 验证方式登录了
需要注意的是:必须保证数据库能够同时用Windows验证和 SQL Server 身份验证方式登录,否则后续的数据库开发无法通过用户名密码的方式成功连接数据库的。
数据库开发过程:
1.连接数据库:
using System.Data.SqlClient;
///注意:由于这里是连接本机的数据库,Server参数的几种链接方式:
///1.指定数据库地址链接数据库,因此可以填数据库服务器的IP,如我机器IP为"192.168.0.106"
///2.连接本机数据库,可以直接填"."
///3.连接本机数据库,比如我机器名叫STEPHANIE,填"STEPHANIE"也是可以的
string serverAddress = ".";// ".";
string userName = "sa";
string password = "aaa";//配置的用户名密码
//注:链接的数据库名称,大小写不敏感(大小写均可)
string dataBaseName = "MyDB";
SqlConnection con = new SqlConnection("Server=" + serverAddress
+ ";UID=" + userName + ";PWD=" + password + ";DataBase=" + dataBaseName);
con.Open();//连接数据库
con.Close();//关闭连接
什么是存储过程?
包含了一组SQL语句的集合文件,只编译一次,效率比每次指定SQL效率高
什么是事务?
包含了一组SQL语句块,但是可以回滚操作
怎么读取单条数据表内容?
使用DataReader读单条数据内容,DataReader常用来检索大量数据,用于从数据源中检索只读数据集。读取大量数据的时候,效率要高一些。主要方法:Read(),Close(),Get()。
用法结构:myCmd是SqlCommon绑定了SQL查询语句的对象
SqlConnection con = GetConnection();
string sqlStr = "select * from table_2 ";
SqlCommand myCmd = new SqlCommand(sqlStr, con);
myCmd.CommandType = System.Data.CommandType.Text;
SqlDataReader myDr = myCmd.ExecuteReader();//读取数据
while(myDr.Read())
{
//myDr[""]用于获取当前记录的指定字段值,以此实现便利
myDr["字段名"];
}