电の岁月---点滴记忆
交流,分享,进步

  一直以来,凭着对C#的兴趣在实践着C#带来的便捷~也是在实践中学习着原理。但是最近感到原理匮乏,所以正在恶补基础理论部分。对于我们主攻嵌入式的学生来说,C#都显得那么微不足道,更何况其高深的原理呢,但是既然打算深入的学习这样一种语言(可能因为VC带给我的除了占用资源少以外体会不到别的),就要学习的稍微透彻一点。

  毕业论文设计的时候,针对我们学校的实际情况,帮同学做了winform的“宿舍管理系统”,一直也想做一款手机“空余教室查询”系统,但是JAR的知识不太懂,所以只能后面慢慢探索,目前可以直接上手的,而且针对我们身边的情况,做出了这样一个小小的网页“论文选题系统”。我们上个学期论文选题采取的是抓阄的形式,一方面有人幕后选题,一方面班委也不好统计信息,所以网络随机抽题会很便捷。

  开发环境:VS2008+SQL2005

  数据库:

  

  用户及权限:

  学生----填写个人的信息,以方便老师与其联系。抽取题目,设置仅有一次抽取题目的机会,之后只能进入页面查看抽取结果和指导老师的联系方式

  老师----填写个人联系方式,录入个人需要指导的题目和限定专业,只有特定专业的学习可以参与写作。下载汇总表,包括个人指导学生的信息,专业,院系和全校学生的论文指导信息

  算法:

  随机抽题:为了保持高效的效率,已经被抽取的题目不参与下次随机数的计算。已经抽取的题目,会在数据库中对应学生的姓名,姓名为NULL的说明该题目可以被抽取,所以只要在SQL加上这个限定条件,再保证限定专业和学生专业一致即可。

  导出excel表格:首先需要绑定一个GridView控件,然后利用GridView控件的RenderControl()来输出数据

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

Page page = new Page();
HtmlForm form = new HtmlForm();

GridView1.EnableViewState = false;

page.EnableEventValidation = false; 

diseñadores RAD.
page.DesignerInitialize(); 

page.Controls.Add(form);
form.Controls.Add(GridView1);

page.RenderControl(htw);

Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();

 

 

  注意要点:页面之间传递数据,不要使用静态成员变量,即便语法上合适,实际中总会出现找不到类名的错误,建议使用session,cookie等

       SQL语句判断字段是否为NULL,不能直接使用NULL或者"",常用做法是使用ISNULL函数

        

语法
ISNULL ( check_expression , replacement_value )

备注
如果 check_expression 不为 NULL,则返回它的值;否则,在将 replacement_value 隐式转换为 check_expression 的类型(如果这两个类型不同)后,则返回前者。

参数
check_expression 
将被检查是否为 NULL 的表达式。check_expression 可以为任何类型。

replacement_value 
当 check_expression 为 NULL 时要返回的表达式。replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。

返回类型
返回与 check_expression 相同的类型。

示例
A. 将 ISNULL 与 AVG 一起使用
以下示例查找所有产品的重量平均值。它用值 50 替换 Product 表的 Weight 列中的所有 NULL 项。

USE AdventureWorks;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO

 

 

  页面实例图片:

        

        

     

        

          

posted on 2010-07-30 15:29  doucontorl  阅读(851)  评论(0编辑  收藏  举报