SQL数据库知识

数据库的内容也看了一段时间了,感觉自己就是比较重视数据库的使用,对相关的什么概念性知识掌握的并不好,哈哈,有点太急功近利了---不过话说回来,专业的数据库都有专业的数据库编写者和维护者,我要做的是程序员,是使用的人而非维护的人,汗,算是给自己一个开脱的理由吧,嘿嘿,下面总结下数据库知识的方方面面,也涉及一点数据控件的使用,当然最主要的还是对数据库的访问方面;

1.数据软件的部署

vs自带了sqlexpress安装vs如果选择完全安装,sql就会自动安装上,但是注意这里安装的不是图形化界面的sql换言之仅仅是安装了内核部分并启动了服务,通常情况下我们可以说使用安装时自动提供的命令行命令来进行基本的操作,虽然可以使用但是很不直观,所以我们还需要managementstudio,相当于sql2000的企业管理器,在这个IDE里我们可以完成基本上所有的像是编写和执行sql语句,附加删除数据库等操作,非常简单;安装中会要求连接模式,windows认证或者是凭帐号和密码的认证,这影响到以后连接的选择;Snap5 Snap4

2.连接数据库

首先我们还是要感谢一下伟大的bill大门,因为vs直连数据库是很简单的,拖一个gridview控件选择配置数据库然后按向导提示一步步非常easy,系统会自动生成sqldatasource并保存链接字符串;在连接的过程中比较多的是分两种情况,sqlserver数据库和access数据库;前者,服务器选项中如果安装的是express版本的sqlserver,输入./sqlexpress在下方的数据库选项中可以看到所有注册到本机的文件,非快速版输入(localhost)或者计算机名即可进行访问;access数据库访问只要提供原文件的具体屋里路径就可以搞定了;

编程访问数据库会比较麻烦些;首先我们需要字符串,Snap3 可以从msdn查到并根据自己情况修改,data source指定的是服务器名./sqlexpress,如果选择windows认证就会有integrated security=true,如果是传统认证就会要username和pwd即用户名和密码initial catalog用于已经存在数据库而直接使用的数据库的名称,如果是不存在而附加的数据库会有AttachDBFile=填写附加数据库的物理路径;为了连接数据库我们需要先创建一个连接sqlconnection cn=new sqlconnection(连接字符串)然后有个sqldataadapter da设置它的connection属性为上面创建的值,我们还需要个sqlcommand设置它的内容为需要执行sql命令的内容,比如select语句,然后我们需要个dataset1使用da的fill方法填充dataset然后就可以将它设置为其他数据控件的数据源;da是会自动打开和关闭数据连接,如果是使用cmd的excute一系列方法就必须手工打开并关闭数据连接con.open();;比如如果定义过一个gridview1就可以设置gridview1.datasource=dataset1;

3.数据的访问方式

首先dataset访问方式是存储在内存中的所以过度使用势必会影响服务器性能,但是它提供的是一个可更新的查询,即可以执行sql的update命令,如果需要只读的数据完全可以使用datareader并且它可以提供比dataset更好的性能,因为它是只读向前的;datareader不提供构造函数,可以如下使用datareader dr=cmd.ExcuteReader();cmd为包含查询字符串的sqlcommand对象;一旦设置了dr就可以用while(dr.Read()){Console.WriteLine(dr[0].Tostring)},dr包含一个数组,可以通过索引来进行访问,注意dr是按行循环读取,每次读取一行,因此dr[1]第一次时代表第一行第一列的值,循环一次后就是第二行第一列的值了,注意dr返回值为没记错的话是object类型,要进行强制类型转换的;

4.数据的基本操作

连接完数据自然是操作数据;基本上仍然是分两种方式:一种就是对应使用dataadapter的方式,另一种是纯手工更新数据库;第一种,很简单,可以定义一个sqlcommandbuilder对象使用定义的da作为它的构造函数的参数,可以自动根据需要生成更新语句,我们要做的只是把更改的table作为da的update方法的参数进行该方法的调用就好了;另一种方式就是手工调用command对象的excutenonquery()方法执行update命令的sql语句,update xxx set no=xx where id=yy no,id均代表原表的列名xxx代表原来的表名,id一般是该表的主键,方便查找数据从而对该数据进行修改;当然还可以通过设计存储过程,从而实现在cmd对象内部调用存储过程实现数据更新,一般数据较复杂的情况下这种方式比较好;

5.数据控件的使用

一般来讲说使用数据控件就是使用datagrid或者datagridview.像是repeater控件等几个控件,第一,样式不是很好定义,功能也不如前者多,第二,使用不是很方便,实现相同的功能,譬如分页,用datagrid就是一个选项的问题,使用repeater可能就需要十几行甚至几十行的代码来实现;有好的工具我们却去使用落后的,这是很危险的-<=>-.关于datagrid,标准的asp.net数据控件定义样式如下Snap1

比较想说的就是普通的绑定区域均是BoundField,而超链接绑定是HyperLinkField通过第一个属性制定数据来源,第二个属性指定单击该hyperlink的跳转的查询字符串;还有一个问题是,如何根据一个已知控件的值来确定datagrid的显示的值,可以在选择数据源的时候就进行设定;

6.还有几个想要讨论的问题

数据视图,View对象;在数据库的每张表都维护着一个view对象,默认情况下是名为defaultview的属性,可以设置该view的filter属性实现在某些情况下的数据的筛选;view也可以作为数据控件的数据源;view对象不存储原来表中的数据,只是可以看成是对表中数据的一个纵览;

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值