木子屋 Dnawo's BLOG

分类:Web编程

共 944 篇

T-SQL的case函数

case函数用于计算条件列表并返回多个可能结果表达式之一,下边我们用例子来说明它的两种用法。假设表Table1的数据如下: id name course total 1 张三 语文 35 2 张三 数学 45 3 张三 英语 60 4 李四 语文 75 5 李四 数学 90 6 李四 英语 80 我们希望根据分数显示不及格、及格、良或优,我们先构造了如下SQL语句: 执行结果: id name course total result 1 张三 语文 35 未知 2 张三 数学 45 不及格 3 张三 英语 60 及格 4 李四 语文 75 良 5 李四 数学 90 优 6 李四 英语 80 未知…

T-SQL使用convert函数对日期进行格式化

平时我们常用convert将一种数据类型转化为另一种数据类型,都只有用到前面两个参数,却忘了convert还有第三个参数type,convert函数的语法为: 在对日期进行格式化的时候第三个参数起着非常重要的作用!例如: 下边列出几个常见的时间格式及其对应的style值: 1:mm/dd/yy 2:yy.mm.dd 3:dd/mm/yy 4:dd.mm.yy 5:dd-mm-yy 6:dd mon yy 7:mon dd, yy 8:hh:mm:ss 说明:将上边style的值加100,年份则带世纪数位(yyyy),更多convert函数的信息请参考SQL Server联机丛书。

Repeater数据筛选不必重新进行数据绑定

如上页面中的数据,希望通过选择不同的筛选条件Repeater上立即显示出符合条件的数据,常规的做法是在DropDownList的SelectedIndexChanged事件处理程序中根据选中的条件拼接不同的SQL语句并进行查询,然后对Repeater重新绑定数据,今天突然想到了另一种实现思路:我们可以遍历Repeater各行,对每行中的数据进行判断,符合条件即显示该行,不符合即隐藏该行来达到同样的效果。这样做无疑会减少很多不必要的数据库查询,操作起来也非常简便。下边是一个简单的例子: PageA.aspx: PageA.aspx.cs:

在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件

在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用FindControl进行寻找,但在HeaderTemplate和FooterTemplate模板中的控件就无能为力了,此时我们只能用Controls属性来解决问题。假设页面中有如下一个Repeater控件: 下边代码示例寻找Label1和Label3:

sql server行转列问题终极解决

1)简单的行转列 示例表result: id sid course result 1 2005001 语文 80.0 2 2005001 数学 90.0 3 2005001 英语 80.0 4 2005002 语文 56.0 5 2005002 数学 69.0 6 2005002 英语 89.0 执行 select sid,语文=isnull(sum(case course when '语文' then result end),0), 数学=isnull(sum(case course when '数学' then result end),0), 英语=isnull(sum(case course when '英语' then result end),0)…

Repeater中实现CheckBox的全选/反选/取消

实现的思路比较简单,遍历Repeater所有行,然后用FindControl方法寻找CheckBox控件,并对其Checked属性赋值即可。下边是一个简单的例子: PageA.aspx: PageA.aspx.cs: 根据这个思路要对GridView、DataList中的CheckBox进行全选/反选/取消也很简单了,就是遍历所有行的方法不太一样而已。 说明 1.如注释中说的,数据绑定一定要放在!IsPostBack中进行,否则每次都会重新绑定数据,导致不论之前选择与否,Checked的值都为false,反选按钮失效每次都是全选! 2.Items集合包含的是ItemTemplate模板中的内容,不包含HeaderTemplate和FooterTemplate模板中的内容!GridView、DataList都是这样的!…

SQL语句:按时段统计数据

假如有一张会员表Table1,我们现在想统计出某些时段(一个月每一天或一天的每个小时)的注册人数,SQL应该怎么写呢?假如会员表数据如下: UserName RegDateTime ---------------- ----------------------------- user1 2008-07-29 00:32:53.000 user2 2008-07-29 00:32:53.000 user3 2008-07-31 00:32:53.327 user4 2008-07-31 00:32:53.327 user5 2008-07-31 01:32:53.000 user6 2008-07-31 01:32:53.000…

存储过程中SET NOCOUNT的使用

SET NOCOUNT可以阻止在结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。 语法 SET NOCOUNT { ON | OFF } 备注 当 SET NOCOUNT 为 ON 时,不返回计数。当 SET NOCOUNT 为 OFF 时,返回计数。 即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。 当 SET NOCOUNT 为 ON 时,将不向客户端发送存储过程中每个语句的 DONE_IN_PROC 消息。如果存储过程中包含一些并不返回许多实际数据的语句,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。…

C#的using 语句

using 语句会确保调用了对象的 Dispose 方法,即使在调用对象上的方法时发生异常也是如此,当然了,前提条件是对象类型必须实现 IDisposable 接口。还有,在 using 块中,对象是只读的所以你无法进行修改或重新分配。如下例子: 先建一个 Student 类,它实现了 IDisposable 接口: using 语句使用示例: 说明: 1.Student 必须实现 IDisposable 接口,否则程序将出错,提示:using 语句中使用的类型必须可隐式转换为“System.IDisposable”; 2.输出yes,说明调用Dispose后,对象并没有被释放; 参考文章:http://msdn.microsoft.com/zh-cn/asp.net/yh598w02.aspx