时间:2016-02-15 23:34 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net中ADO SQL数据库 笔记汇总 持续更新中】,下面是详细的讲解!
asp.net中ADO SQL数据库 笔记汇总 持续更新中
ADO连接数据库1)获取连接字符串
方式一: 记住连接字符串
connectionString=" Integrated Security=True; server=. ; database=DBName"
方式二:在visual studio中,点击”视图”à服务资源管理器à右击左侧的”数据连接”,选择”添加连接”à服务名: 为一个点.选择数据库名,然后点击”高级”,然后复制底部的连接字符串
2)在web.config中配置连接字符串
3)在DAL层新建SqlConnection类,包含静态方法:
记得先添加Configuration引用和 using System.Configuration;命名空间
4)在DAL层其他类中调用getConnectionStr()静态方法
DAL层执行SQL语句的方法
ADO操作SQL语句:方式一
ADO操作存储过程:
错误日志
数据库技术
建修库表
建库语句
建表语句
对表的操作
修改表结构,添加删除约束
alter table person --修改表结构
--add NameID int --添加属性\字段NameID列,添加列
--drop column NameID --删除列
--alter column ID int not null ---添加字段不为空
--add constraint 约束名(pk_表名_列名| pk_列名)
--add constraint pk_ID primary key(ID) --修改表时添加主键约束
--add constraint ck_score check(score<150) --修改表时添加检查约束
--add constraint uk_cardi unique(cardid) --修改表时添加唯一键约束
--add constraint df_age default 19 for age --修改表时添加默认约束
--drop constraint CK__person__score__15502E78 --删除约束(格式:drop constraint 约束名)
修改表信息,增(insert) 删(delete) 改(update) 查(select)
--添加记录<insert 表名values(参数)> <1>字符串或日期类型加'' <2>bit用或 <2>自动增长列不需要添加值
insert person values(12,'wang',0,23,32,34)
insert person(sex,age,cardid) values(0,23,32) --有选择性的插入数据((sex,age,cardid) )指要手动添加的数据
--修改记录 <update 表名set 修改对象where 条件> <1>修改多个字段,中间以逗号间隔
update person set age=19,sex=0 where ID=1
update person set age=19,age=12 where ID=2 ---<1>
update person set age=19+1 where ID=2---修改信息时进行算术运算
update person set age=19+1 --如果不写where,则对所有数据进行修改
update person set age=SUBSTRING(age,1,1) where ID=1 --substring 是字符的截取
--删除记录< delete 表名where 条件> (如果不加where则删除所有记录)
delete person where ID=1
对表的查询
单表查询
多表查询
存储过程
一些例子
数据库联查授权
分页器存储过程,分页存储过程
事务 Transaction
触发器 Trigger
游标 Cursor
零散知识点
1)截取字符串: substring(字段名, 起始位置(首位为1),截取的长度 )
select SUBSTRING(age,1,1) from person where ID=2
2)关于GUID:
select NEWID()
insert person values('','',NEWID())
3)将一张表(person2)插入到另一张表(person1)中( 列数要对应)
insert person1
select列,列,列 from person2
4)条件语句 (注意: C#中的大括号{}在sql中用begin end 代替 )
5)判断是否存在if exists( select * from TBName where CityName='22')
6) 添加自动增长列row_number over(order by **) ROW_NUMBER是关键字 over指根据哪一列排序
select ROW_NUMBER() over(order by classID) ,* from SM_Class
select rank() over(order by classID) ,* from SM_Class ---也是自动增长的行号,如果出现重复会并列行号,下一个值会自动加二
--一条查询语句返回的结果作为另外一条查询语句的数据源表
select * from ( select ROW_NUMBER() over(order by 列名1)此处新列名, * from TBName) 此处新表名where 新列名between 1 and 3
7)临时表
declare @table table(id uniqueidentifier,name varchar(50))
--执行插入操作(插入条数据),并将这条数据的hid字段返回并插入到@table表id属性中
insert images(Hname,Himage) output inserted.Hid into @table(id) values(@hname,@Himage)
declare @picid uniqueidentifier
select @picid=id from @table
------------------------------------------------------------
--下面是执行效率的对比
--sql 语句一:执行需要s
declare @tempTable table(id varchar(20),name int,score datetime)
insert @tempTable(id,name,score)
select userID,userName,userScore from scoreTable
select * from @tempTable
--sql 语句二:执行只需要s
DROP TABLE #Bicycles
SELECT userID,userName,userScore
INTO #Bicycles
from scoreTable
select * from #Bicycles
8)关于日期时间的操作
--数据库中获取北京时间和国际时间
select getdate(), getutcdate()
--时间的增加(增加的类型[年/月/日],增量,给谁加[当前时间/日期])dateAdd
select dateadd(YEAR,2,GETDATE()) ----将当前的年份加上两年
--时间的减法DateDiff
select DATEDIFF(HOUR,getdate(),getutcdate()) --国际时间的小时减去当 前北京时间的小时(后边减前边)
--获取时间中的年份, 月份, 天等同理
select year(getdate())-year(birthday())
select year(getdate())-year('1988-10-07')
9)行列转换
select * from ( select * from TableName) a pivot(count(stuName)) for columnName in('aa','bb','cc','dd')
10) 双引号只能用于表名和列名(不加双引号也可以)
set @aa='select ClassName "sd" from SM_Class' --注意:'' 里面原来的'sd' 现在要写成"sd"
exec (@aa)
-----------------这里要多加注意------------------------------
declare @bb nvarchar(max);
--在使用数据值时只能用''电商二班''
set @bb='select * from SM_Class where ClassName=''电商二班''' --注意:原来的'电商二班'要写成''电商二班''
exec (@bb)
11) --快速创建表结构
select c.Cid,c.Ccount into newTB1 from ns_comment c where 1<>1
12) --重点再记一下
declare @na nvarchar(10),@str nvarchar(max);
set @str=' select top 1 @bb=ClassID from SM_Class '
--@str包含SQL语句的变量,对@str中的变量进行定义N标明是字符串,用来接收@str中变量的变量(即@na=@bb)
exec sp_executesql@str, N'@bb nvarchar(10) output',@na output
select @na,@str
13) -------------并发问题--------
--概念:多个用户同时和一个对象(库,表)交互
--出现问题:脏数据,非重复读取,丢失更新,幻影读取)
--解决:SQL Server使用锁来确保事务完整性(共享锁,排它锁,更新锁,意向锁,架构锁,批量更新锁)
14)
关于asp.net中ADO SQL数据库 笔记汇总 持续更新中的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 【Visual】分享Visual Studio原生开发的10个调试
- 【全局】.net全局定时定期执行某些操作在Global.a
- 【asp】asp.net ubb使用代码-net-ubb使用
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
