黑马程序员_笔记十

来源:互联网 发布:乌鲁木齐 网络订花 编辑:程序博客网 时间:2024/06/05 05:44

 ------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------- 

数据库二
SQL中的数据函数
(1)ABS():求绝对值
(2)CEILING():舍入到最大整数
(3)FLOOR():舍入到最小整数
(4)ROUND():求四舍五入的数值
SQL中的字符串函数
(1)LEN():求字符串的长度
(2)LOWER():转小写  UPPER():转大写
(3)LTRIM():去掉做空格 RTRIM():去掉右空格
LTRIM(RTRIM())去掉两边的空格
(4)SUBSTRING(string ,start_position,length)截取字符串
SQL中的日期函数
(1)GETDATE():取得当前日期
(2)DATEADD(datepart,number,date):计算增加以后的日期,datepart为计算单位,number为增加量,date为原始日期。
(3)DATEDIFF(datepart,startdate,enddate):计算两个日期之间的差额,datepart为计算单位,startdate为起始日期,enddate为终止日期。
(4)DATEPART(datepart,date):取得某一个日期的某一个特定的不分,datepart为取得部分,date所操作的日期。
SQL中的数据转换函数
(1)CAST(expression AS date_type),expression为需要转换的数据date_type为转换的类型
(2)CONVERT(data_type,expression)
注意:类型转换函数的返回值是转换后的值
空值处理函数:ISNULL(expression,value),意思是判断expression是否为空,若为空返回value中的值,不为空返回expression的值。
CASE函数(有点类似于C#中的switch-case)
用法一:单值判断
CASE expession
when 值1 then returnvalue1
when 值2 then returnvalue2
...
when 值n then returnvalue3
else dafaultreturnvalue
END
用法二:测试数据
CASE
when condition1 then returnvalue1
when condition2 then returnvalue2
...
when conditionn then returnvaluen
else defaultreturnvalue
END
表连接:join on
例子:select o.列名,c.列名 from 表1 as o join 表2 as c on o.某一列名=c.某一列名
连接主要有三种方式:inner join,left join,right join。
子查询:将一个查询语句作为结果集供其它SQL语句使用。
限制结果集函数:ROW_NUMBER()
例子:select * from(select ROW_NUMBER() OVER (ORDER BY 字段1 DESC ) AS rownum,字段字段1,字段2)as 别名 where 别名.rownum>=3 and 别名.rownum<=6(按照字段1降序排列,查询出第三到第六条数据行)。
ADO.NET
程序和数据库之间要进行交互就会用ADO.NET,ADO.NET提供了对各种数据库的统一操作接口。
直接在项目中内嵌.mdf文件的方法是:右键(项目)_>添加_>新建项_>数据_>基于服务的数据库。
连接SQLSERVER:
(1)连接字符串:程序通过连接字符串指定要连接哪台服务器上的哪个实例的哪个数据库,以及指定用什么用户名,用什么密码等。
(2)ADO.NET中通过SqlConnection类创建到SQLServer的连接,一个SqlConnection实例就代表着一个数据库连接。例子:
Sqlconnection conn=new SqlConnection(连接字符串);
conn.Open();//打开数据库的连接
创建SqlConnection类的实例时缺少命名空间的解决办法是,第一种:先把光标放在SqlConnection类上然后再按ctrl+.第二种:把光标放在SqlConnection上,右键_>解析_>using....。
ADO.NET中的连接等资源都实现了IDisposable借口,所以在使用完资源的时候要释放,方法如下
1.使用using资源管理器
using(创建SqlConnection对象)
{
语句;
}
执行完using后的{}内的语句之后,连接资源会被立即释放。
2.使用try-catch-finally语句
try
{
执行语句;
}
catch
{
语句出错后的执行代码;
}
finally
{
conn.Close();
conn.Dispose();
}
(3)SqlCommand类创建的对象会向数据库服务器提交一个命令(SQL语句),对象的CommandText属性为要执行的SQL语句,对象的ExecuteNonQuery()方法一般用来执行非查询语句的,返回值为SQL影响的行数,对象的ExecuteScalar()方法用来执行查询语句的,返回值是所得结果集的第一行第一列的值,由于无法确定它的类型,因此为object类型的,对象的ExecuteReader()方法使用来执行查询语句的,返回值是所得到的结果集。
例子:
using(SqlConnection conn=new SqlConnection(连接字符串))
{
using(SqlCommand cmd=conn.CreateCommand())
cmd.CommandText="SQL语句";//这一步只是指定
//对象应该执行的SQL语句,但是不会执行
cmd.ExecuteNonQuery();//这一步才是执行SQL语句//的操作
}
在SQL语句中插入output inserted.Id可以输出插入数据行的主键值,例子:
cmd.CommandText="insert into 表名(字段名1,字段名2)output inserted.id values(值1,值2)";
SqlDataReader对象
定义语法:SqlDataReader reader=cmd.ExecuteReader();
read()方法用来读取结果集中的数据的,按行读取
例子:
using(SqlConnection conn=new SqlConnection (连接字符串))
{
using(SqlCommand cmd=conn.CreateCommand())
{
using(SqlDataReader reader=cmd.ExecuteReader())
{
while(reader.Read())
{
Console.WriteLine(reader.GetString(1));
}
}
}
}
reader对象的GetString()和GetInt32()方法的参数只能为整数,代表着列的序号,GetOrdinal()方法的参数时列名,我们可以用这个方法根据列名动态的得到相应的列的序号。
conn.Close()和conn.Dispose()的区别?
conn.Close()方法关闭了与数据库的连接之后还可以再连接上,而conn.Dispose()方法则是直接销毁连接。

------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------   详细请查看:http://edu.csdn.net/heima  

原创粉丝点击