最近几天的搜集

//获取或设置一个值,该值指示参数是只可输入、只可输出、双向还是存储过程返回值参数。默认为input
//parameter.Value == null---其实实现的是,C#中的Null和数据库中的DBNull相对应

if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null))
{
parameter.Value = DBNull.Value;
}

//指定命令字符串的类型。
//其中CommandType是枚举类型{文本:Text;存储过程:StoredProcedure;表的名称:TableDirect}
//一直都没用过CommandType枚举的TableDirect的方式,今天试了一下报错,原来TableDirect只支持OleDB
//CommandType 属性设置为 TableDirect 时,应将 CommandText 属性设置为要访问的表的名称。当您调用“执行”(Execute) 方法之一时,将返回命名表的所有行和列。
//为了访问多个表,请使用逗号分隔的列表(没有空格或空白),其中包含要访问的多个表的名称。当 CommandText 属性命名多个表时,返回指定表的联接。
//只有用于 OLEDB 的 .NET Framework 数据提供程序才支持 TableDirect。 当 CommandType 设置为 TableDirect 时,不支持对多个表的访问。

cmd.CommandType = CommandType.Text;

/// <summary>
/// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
/// </summary>
/// <param name="strSQL">查询语句</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader ExecuteReader(string strSQL)
{
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(strSQL, connection);
connection.Open();

//CommandBehavior是一个枚举类型~!!
//括号中参数的意义在于:在执行该命令时,如果关闭关联的 DataReader 对象,则关联的 Connection 对象也将关闭。
//调用时和以前无差,只是此处必须这样写而已
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

return myReader;
}

//由于在数据库中Remark字段是可以为null,所以必须做此判断!!
if (model.Remark.Length == 0)
{
parameters[4].Value = DBNull.Value;
}
else
{
parameters[4].Value = model.Remark;
}

PrepareCommand(cmd, connection, null, SQLString, cmdParms);
object obj = cmd.ExecuteScalar();
//清空cmd的参数列表
cmd.Parameters.Clear();
//如果返回值obj为null,或者,为DBNull~!!
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}

//if (row["Remark"] != null)
//{
// model.Remark = row["Remark"].ToString();
//}

//对于在数据库中可为空的字段,Row2Model时的代码应该如下写,使用三元运算符~!
model.Remark = row.IsNull("Remark") ? "" : row["Remark"].ToString();
//此处容易犯错误!!【切记】【切记】

---------------当传入的参数比较少的话,直接传入参数!当传入的参数比较多(大于两个)的情况,则可以直接传对象的实体Model-------------------个人经验之谈~!!
---------------抛异常部分-------------【1】如果是弹出对话框,让你选择"是"还是"否",则是.NET Framework框架 捕获的错误,而你的程序中没有进行try catch,是框架替你捕获的~!!【2】而另一种情况,则是什么错误消息框也没弹出,则直接程序崩溃,自动关闭。这是一种连框架都没有想到的一种错误。【3】常理来说,程序运行一旦遇到错误,应该立即终止。但是弹出选择框让你选择是否继续,则是对于"发生异常,程序员有Try catch,抛出异常"这种有预谋的考虑所做出的妥协。【4】也就是说程序编写阶段对于种种可能发生的异常情况都考虑到,都进行了相应的抛出异常操作,则程序是不会崩溃,自动自动关闭的。

///三种方式实现,弹出----登陆成功,然后跳转

//【1】这种直接使用Response.Write()方法,可能会造成破坏网站整体的CSS结构。不建议使用
//Response.Write("<script languge=‘javascript‘>alert(‘登陆成功,欢迎【" + stu.Name + "】同学登陆本系统!‘); window.location.href=‘Main.aspx‘</script>");

//【2】Page.ClientScript.RegisterClientScriptBlock()这种方式生成的js代码,会在页面显示控件的前面提前生成(但仍然在Form表单之中,只不过在显示控件代码之前),造成的效果就是,弹框效果之后,弹框的后面无控件显示,一片白板~!!
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert(‘登陆成功,欢迎【" + stu.Name + "】同学登陆本系统!‘); window.location.href=‘Main.aspx‘", true);

//【3】Page.ClientScript.RegisterStartupScript(),与上面方法相比,生成的js代码也在Form表单之中,但是在显示控件代码之后。造成的效果就是,弹框效果之后,弹框的后面有控件显示~!!
//Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), @"<script languge=‘javascript‘>alert(‘登陆成功,欢迎【" + stu.Name + "】同学登陆本系统!‘); window.location.href=‘Main.aspx‘</script>", false);

---------------------可以将两个Sql命令放到一个Sql语句中去执行,两个命令之间用";"相隔~!!例如插入一条数据,再查出这条新数据所对应的Id,就是两个命令,但是一个方法去执行。------------------

/// <summary>
/// 批量删除数据
/// </summary>
public bool DeleteList(string TypeIdlist )
{
StringBuilder strSql=new StringBuilder();
strSql.Append("delete from RoomType ");

//批量删除数据时,传入的参数为被删除实体对应的Id列表集合(集合中的Id以逗号分隔表示,例如(1,6))
//这样才能使用数据库中的 In 关键字
strSql.Append(" where TypeId in ("+TypeIdlist + ") ");

int rows=DbHelperSQL.ExecuteSql(strSql.ToString());
if (rows > 0)
{
return true;
}
else
{
return false;
}
}

//-----------外键实体的处理,例如:房间表中的【外键】房间类型
【1】private int _roomType; 改成 private RoomType _roomType;-------用对象作为一个实体类的属性
【2】在DAL.Room类中的DataRowToModel()方法中修改代码:
if(row["RoomType"]!=null && row["RoomType"].ToString()!="")
{
model.RoomType=int.Parse(row["RoomType"].ToString());
}

改成:
-----------------添加,实例化DAL中的RoomType类
DAL.RoomType dal = new RoomType();

if(row["RoomType"]!=null && row["RoomType"].ToString()!="")
{
int roomtypeId=int.Parse(row["RoomType"].ToString());
model.RoomType = dal.GetModel(roomtypeId);
}

时间: 2024-10-12 07:45:44

最近几天的搜集的相关文章

20145235李涛《网络对抗》Exp6 信息搜集与漏洞扫描

基础问答 那些组织负责DNS,IP的管理? 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地址管理.全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份).全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务. 什么是3R信息? 即注册人(Registrant).注册商(Regi

mysql性能瓶颈分析、性能指标、指标搜集方法与性能分析调优工具

本文主要讲解mysql的性能瓶颈分析.性能指标.性能指标信息的搜集工具与方法.分析调优工具的使用. 文章尚未完成. 性能瓶颈: 慢.写速度比读速度慢很多  主要的性能指标: 访问频度, 并发连接量, 缓存命中率, index使用, slow log开启与分析, query Log,查询log Threads_cached:连接线程缓存是否开启  -> ONthread_cache_size :线程缓存数的大小query_cache_size: 查询缓存大小join_buffer_size :jo

搜集的一些RTMP项目,有Server端也有Client端

查询一些RTMP的协议封装时找到了一些RTMP开源项目,在这里列举一下,以后有时间或是有兴趣可以参考一下: just very few of them. Red5 only contains a server-implementation (in java). The python project rtmpy aims to be a freesoftware implementation of an RTMP library, whilst Tape intends to be a fulls

搜集关于人脸识别的评价指标时的感慨

今天在搜集人脸识别的metrics,用英文没搜索对关键词,Google了好几页都没有有效信息 于是转入百度用中文搜索, 结果一共有4-5篇介绍,剩下基本都是在转载这几篇 而且介绍了很不完整,不系统性,没有总分总的感觉,碎片化严重 于是继续读论文DeepID3中的相关工作部分的总结, 以及<A Benchmark Study of Large-scale Unconstrained Face Recognition >, 一个讲大规模无约束人脸识别的评价方法的,实际就是讲对LFW的各种评测, 然

20145239杜文超《网络对抗》- 信息搜集与漏洞扫描

20145239杜文超<网络对抗>- 信息搜集与漏洞扫描 基础问题回答 (1)哪些组织负责DNS,IP的管理? 美国政府授权ICANN统一管理全球根服务器,负责全球的域名根服务器.DNS和IP地址管理,全球根域名服务器绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份). 全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务. (2

前端页面性能参数搜集

经常会看些性能分析的书,但是实际在做优化的时候又无从下手. 因为没有数据,也不能确定实际用户到底在哪一环影响了他们的性能. 现在H5提供了一些很方便的Performance接口,可以让我们更方便的搜集到用户的数据,不过有几个方法的兼容性实在太差. 插件已经上传到Github中,可以在这里获取到,index.html中写的是一些示例,插件源码在"js/primus.js"中. 写的比较仓促,自己能力也有限,如有问题,欢迎指正. 一.请求时间统计 上图是performance.timing

3.垃圾搜集器以及垃圾收集算法

1.概述 Java内存运行时区域的各个部分里: 其中程序计数器.虚拟机栈.本地方法栈3各区域随线程而生,随线程而灭.栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作.每个栈帧中分配多少内存基本上是在类结构定下来是就已知了,因此这几个区域的内存分配和回收都具备确定性,不需过多考虑. 而堆和方法区不一样,只有在程序处于运行期间才能你该知道创建哪些对象,这部分内存分配和回收是动态的,因此主要关注. 2.对象死亡判别 1.引用计数法 给对象中添加一个引用计数器,每当有一个地方引用时,计数器

iOS开源项目搜集

Github上的600多个开源项目搜集: (当然Github上远不止这些) http://github.ibireme.com/github/list/ios/ 关于iOS上的7个常用开源项目: (Cocoachina上搜集了很多) http://www.cocoachina.com/industry/20130701/6515.html CSDN整理的最受欢迎的iOS与Android开源项目: http://www.csdn.net/tag/%E6%9C%80%E5%8F%97%E6%AC%A

好网站搜集整理(吐血推荐)

http://www.MrPrint.cn/  你今天印书了么?免费将你的博客翻印成书 http://www.logomaker.cn  你可以制作出很有专业水准的动态logo,有很多的样式供你选择 http://www.google.com/gwt/n   可以访问任何网页的Google隐藏入口 http://www.gifup.com   在线制作GIF动画的网站,很有趣可以自己动手制作自己喜欢的gif动画,方法也很简单,哈哈,我们也可以秀一下自己的动画了! http://www.hi-id

js模板引擎介绍搜集

js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTemplate等),如何从这么多纷繁的模板引擎中选择一款适合自己的呢,笔者最近对主流的js模板引擎(mustache,doT,juicer,artTemplate,baiduTemplate,Handlebars,Underscore)做了一番调研,分享出来希望对大家有用. 从这几个指标来比较js模板