随笔分类 -  数据库

在触发器中回滚和提交
摘要:在触发器中回滚和提交 当执行触发器时,触发器的操作好像有一个未完成的事务在起作用。不管激发触发器的语句在隐式事务中还是显式事务中,都会这样。当语句开始以自动提交模式执行时,如果遇到错误,可以通过隐式 BEGIN TRANSACTION 语句恢复该语句生成的所有修改。此隐式事务对批处理中的其他语句没有影响,因为当语句完成时,此事务要么提交,要么回滚。但是,当调用触发器时,此隐式事务仍然有效。执行触发器时,将开始隐式事务。如果触发器执行完后 @@TRANCOUNT 为 0,则会出现错误 3609 并终止批处理。由于这个原因,建议避免在触发器内部使用 ROLLBACK TRANSACTION(它将把 阅读全文

posted @ 2013-09-05 09:50 YoungPop_Chen 阅读(3098) 评论(0) 推荐(0)

SQL Server数据库ROW_NUMBER()函数使用详解
摘要:SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用。实例如下:1.使用row_number()函数进行编号,如selectemail,customerID,ROW_NUMBER()over(orderbypsd)asrowsfromQT_Customer原理:先按psd进行排序,排序完后,给每条数据进行编号。2.在订单中按价格的升序进行排序,并给每条记录进行排序代码如下:selectDID,customerID,totalPrice,ROW_NUMBER()over(orderbytotalP 阅读全文

posted @ 2013-08-30 16:52 YoungPop_Chen 阅读(246) 评论(0) 推荐(0)

istView选择自动分页时 DataPager分页控件
摘要:发布:shangke 字体:[增加减小] 类型:转载ListView选择自动分页时 其实就是添加了一个DataPager分页控件两者间存在着嵌套关系《Repeater与ListView》中提到这样的分页并不是高效的 因为数据源还是返回了所有的数据 而非当前页数据 ListView选择自动分页时 其实就是添加了一个DataPager分页控件两者间存在着嵌套关系《Repeater与ListView》中提到这样的分页并不是高效的 因为数据源还是返回了所有的数据 而非当前页数据优化方案及步骤:1.改数据源EnablePaging属性为true 【允许分页】设置MaximumRowsParameter. 阅读全文

posted @ 2013-08-30 16:50 YoungPop_Chen 阅读(229) 评论(0) 推荐(0)

ListView高效分页
摘要:当数据量非常大的时候,采用ListView内置的分页功能,效率会很低,因为ListView内置的分页功能是当每次请求数据的时候都将所有的数据读出然后选择页面中所请求的数据,因此改用以下方法来提高分页效率。以下方法的原理是:在数据库中进行分页操作,根据所请求的数据来直接将数据库中的数据条数取出,这样每次请求数据的时候,就减轻了服务器的负担。首先添加数据集查询方法:GetPagedData(在数据库中取得数据分页的方法)和QueryCount(查询所有数据的行数的方法)GetPagedData:select * from(SELECT Id, Name, Age, Sex,Row_Number() 阅读全文

posted @ 2013-08-30 16:44 YoungPop_Chen 阅读(426) 评论(0) 推荐(0)

使用OjectDataSource数据源绑定ListView 高效分页
摘要:原因:传统的ObjectDataSource作为数据源,绑定ListView,可以不写一行代码,而完成插入、删除、更新、删除、分页等的功能!异常的强大!但ListView默认的分页方式是从数据库中取出所有的数据在根据页号等显示分页后的数据,所以我们想能不能某页就从数据中去会特定的数据呢?答案是 可以的!高效分页技术步骤:在你原有程序的基础上修改:第一步:制作一个强类型的DataSet添加2个函数:第一个是:或者数据库中总的数据条数 QueryCountSELECT COUNT(*) FROM T_News第二个是:获取获取数据库中的 一段数据 GetPagedDataselect * from 阅读全文

posted @ 2013-08-30 16:37 YoungPop_Chen 阅读(238) 评论(0) 推荐(0)

把DataSet、DataTable、DataView格式转换成XML字符串、XML文件
摘要:public class DataToXml { /**//// /// 将DataTable对象转换成XML字符串 /// /// DataTable对象 /// XML字符串 public static string CDataToXml(DataTable dt) { if (dt != null) { MemoryStream ms = null; XmlTextWriter ... 阅读全文

posted @ 2013-08-29 14:50 YoungPop_Chen 阅读(308) 评论(0) 推荐(0)

XML格式与DataTable、DataSet、DataView格式的转换(转)
摘要:XmlConvert类命名空间:Nimeux.XmlConvertXmlToData子类函数:1、public static DataSet CXmlToDataSet(string xmlStr)将xml字符串转换成DataSet2、public static DataTable CXmlToDatatTable(string xmlStr, int tableIndex);将xml字符串转换成DataTable3、public static DataSet CXmlFileToDataSet(string xmlFilePath)将xml文件转换成DataSet4、public stati 阅读全文

posted @ 2013-08-29 14:48 YoungPop_Chen 阅读(277) 评论(0) 推荐(0)

*********DataSet,DataTable,DateView的关系和用法************
摘要:DataSet,DataTable,DateView的关系和用法DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不在依赖于数据库链路。DataSet就是一个临时的小仓库,通过sqlDataApert,可相当于卡车,将数据从数据库中通过适配 阅读全文

posted @ 2013-08-29 14:16 YoungPop_Chen 阅读(295) 评论(0) 推荐(0)

Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法
摘要:Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法一。类型比较bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节。一个字节就是8位,那么bigint就有64位int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据,存储大小为 4 个字节。int类型,最大可以存储32位的数据smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据,存储大 阅读全文

posted @ 2013-08-27 16:42 YoungPop_Chen 阅读(558) 评论(0) 推荐(0)

ExecuteNonQuery()返回值
摘要:前些日子作一些数据项目的时候 在ADO.NET中处理 ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功 。但是实际上并不是这样的,好在处理的数据操作多时 修改, 插入, 删除,否则的话问题就有点打了,都是些基础的知识,但是很重要个人觉得有必要记下来。 ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对. 阅读全文

posted @ 2013-08-27 14:45 YoungPop_Chen 阅读(354) 评论(0) 推荐(0)

SQL LEFT JOIN 关键字 SQL RIGHT JOIN 关键字 fulljoin
摘要:SQL LEFT JOIN 关键字LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。LEFT JOIN 关键字语法SELECT column_name(s)FROM table_name1LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。原始的表 (用在例子中的):"Persons" 表:Id_PLastNameF 阅读全文

posted @ 2013-08-21 14:57 YoungPop_Chen 阅读(199) 评论(0) 推荐(0)

SQL JOIN(SQL INNER JOIN 关键字)
摘要:SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。Join 和 Key有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。请看 "Persons" 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFi 阅读全文

posted @ 2013-08-21 14:56 YoungPop_Chen 阅读(430) 评论(0) 推荐(0)

SQL UNION 和 UNION ALL 操作符
摘要:SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。SQL UNION ALL 语法SELECT column_name(s) FRO 阅读全文

posted @ 2013-08-21 14:54 YoungPop_Chen 阅读(187) 评论(0) 推荐(0)

SQL SERVER事务处理
摘要:事务定义:事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。事务三种运行模式:自动提交事务每条单独的语句都是一个事务。显式事务每个事务均以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。隐性事务在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。事务操作的语法:BEGIN TRANSACTIONBEGIN DISTRIBUTED TRANSACTIONCOMMIT TRANSACTIONCOMM 阅读全文

posted @ 2013-08-20 20:02 YoungPop_Chen 阅读(300) 评论(0) 推荐(0)

.Net和SqlServer的事务处理实例
摘要:1,SqlServer存储过程的事务处理一种比较通用的出错处理的模式大概如下:Create procdure prInsertProducts(@intProductId int,@chvProductName varchar(30),@intProductCount int)ASDeclare @intErrorCode intSelect @intErrorCode=@@ErrorBegin transactionif @intErrorCode=0 begin -insert products insert products(ProductID,ProductName,Product.. 阅读全文

posted @ 2013-08-20 16:42 YoungPop_Chen 阅读(246) 评论(0) 推荐(0)

Guid排序问题
摘要:网上参考,论坛之类,下面是粘贴的原话。在数据库中执行SQL并对GUID列升序排序,结果为:FA22DA92-DA37-46B6-99EA-09BDCDFCDBB3E23CADA8-542C-4D83-865D-FA279BDA904F而在C#中,用DataTable.DefaultView.Sort排序时得到的结果如下:E23CADA8-542C-4D83-865D-FA279BDA904FFA22DA92-DA37-46B6-99EA-09BDCDFCDBB3二种排序结果正好相反,不解其意,望高手回答。注:DataTable中的列类型为GUID,和数据库列数据类型相同!declare @gu 阅读全文

posted @ 2013-08-15 15:57 YoungPop_Chen 阅读(1854) 评论(0) 推荐(0)

SqlDataReader和SqlDataAdapter 区别
摘要:SqlDataReader和SqlDataAdapter 区别SqlDataReader 高效,功能弱,只读访问SqlDataAdapter 强大,要求资源也大一点SqlDataReader 只能在保持跟数据库连接的状态下才可以读取。。。SqlDataAdapter 大多情况下是一次性读取一个表,然后填充到DataSet中,然后就可以断开跟数据库的连接了。两者区别主要是 在线 和 离线 的区别。。。。。一:SqlDataReader rd;rd=cmd.ExecuteReader();比较高效,如果只是显示数据,当然要用这个二:SqlDataAdapter adapter=new SqlDat 阅读全文

posted @ 2013-08-15 15:06 YoungPop_Chen 阅读(3624) 评论(0) 推荐(1)

使用SqlDataReader和SqlDataAdapter的注意
摘要:1、当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它。2、一个连接只能被一个SqlDataReader使用,这也是为什么要尽早关闭SqlDataReader的原因。3、使用完SqlDataReader后,你可以在程序中显示的调用数据库连接对象的Close方法关闭连接,也可以在调用Command对象的ExecuteReader方法时传递CommandBehavior.CloseConnection 这个枚举变量,这样在调用SqlDataReader的Close方 阅读全文

posted @ 2013-08-15 14:58 YoungPop_Chen 阅读(261) 评论(0) 推荐(0)

GUID和INT两种数据类型做主键的比较
摘要:使用INT做主键的优点: 1、需要很小的数据存储空间,仅仅需要4 byte 。 2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。 3、index和Join 操作,int的性能最好。 4、容易记忆。 5、支持通过函数获取最新的值,如:Scope_Indentity() 。使用INT做主键的缺点 1、如果经常有合并表的操作,就可能会出现主键重复的情况。 2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。 3、很难处理分布式存储的数据表。使用GUID做主键的优点: 1、它是独一无二的。 2、出现重复的机会少。 3、适 阅读全文

posted @ 2013-08-15 10:23 YoungPop_Chen 阅读(672) 评论(0) 推荐(0)

导航