摘要:
在WebService中定义方法,有一些注意的地方: (1) 方法上面需要增加 [WebMethod] 属性,标志该方法是一个WebService方法; (2)方法的返回值可以为void、string、int、bool、DataSet等类型,不能为Dictionary<object,object>等 阅读全文
摘要:
微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期、数学、元数据、字符串等。 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用。 但是对于 特殊字符串的处理,比如:ISBN号 '978-7-5007-7234-7',如果想获取第三个与第 阅读全文
摘要:
什么是“反模式” 反模式是一种试图解决问题的方法,但通常会同时引发别的问题。 反模式分类 (1)逻辑数据库设计反模式 在开始编码之前,需要决定数据库中存储什么信息以及最佳的数据组织方式和内在关联方式。 这包含了如何设计数据库的表、字段和关系。 (2)物理数据库设计反模式 在确定了需要存储哪些数据之后 阅读全文
摘要:
【工欲善其事,必先利其器】软件开发的第一步就是选择高效、智能的工具。 下面列出的工具软件能辅助提高工作效率。 微软.Net平台下的集成开发环境:Visual Studio。 Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 20 阅读全文
摘要:
目标:整理数据,使不连续的主键Id数据记录变的连续。 反模式:填充断档的数据空缺。 1、不按照顺序分配编号 在插入新行时,通过遍历表,找到的第一个未分配的主键编号分配给新行,来代替原来自动分配的伪主键机制。 使用Select Max(Id) + 1 这种查询语句,会出现并发访问的问题。 2、为现有数 阅读全文
摘要:
目标:编写SQL动态查询,防止SQL注入 通常所说的“SQL动态查询”是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句。 反模式:将未经验证的输入作为代码执行 当向SQL查询的字符串中插入别的内容,而这些被插入的内容以你不希望的方式修改了查询语法时,SQL注入就成功了。 传统的SQL注入案 阅读全文
摘要:
目标:恢复或重置密码 反模式:使用明文存储密码 1、存储密码 使用明文存储密码或者在网络上传递密码是不安全的。 如果攻击者截取到你用来插入(或者修改)密码的sql语句,就可以获得密码。 黑客获取密码的方式有很多种: (1)在客户端和服务器端数据库交互的网络线路上接货数据包。比如使用Wireshark 阅读全文
摘要:
目标:减少输入 反模式:捷径会让你迷失方向 使用通配符和未命名的列能够达到减少输入的目的,但是这个习惯会带来一些危害。 1、破坏代码重构:增加一列后,使用隐式的Insert插入语句报错; 2、查询中使用通配符,影响性能和扩展性。大量数据在网络之间传输,可能会造成阻塞。 如何识别反模式:当出现以下情况 阅读全文
摘要:
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积。导致查询性能降低。 如何识别反模式:当出现以下情况时,可能是反模式 1、为什么我的求和、技术返回的结果异常地大? 2、我一 阅读全文
摘要:
目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难。 SQL的一个基本原理(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的。 反模式:模式匹配 使用Like 或者正则表达式。 缺点:(1)无法使用索引,进行全表遍历,非常耗时,性能极低。 (2)有时候会返回医疗之外 阅读全文