随笔分类 - .Net相关
.Net相关
摘要:原文地址:http://www.codeproject.com/cs/database/SelectQueryBuilder.aspSelectQueryBuilder类允许在你的代码中建立复杂的SQL语句和命令。它也能帮助于避免SQL注入式攻击。SelectQueryBuilder类包含了许多属性和方法,你能很容易地在Select语句中使用它们。一旦调用BuildQuery() 和BuildCommand()方法,它能提供一种更好的旧的“字符串查询“或可以使用命令参数的DbCommand对象来查询数据。不安全的旧方法:下面的代码阐明了以前建立SELECT语句的方法,它使用许多类变量来说明应该
阅读全文
摘要:两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上1.在客户端,Get方式在通过URL提交数据,就是把表单内的元素,转化成url参数提交,比如你有一个页面index.html,这个页面有一个文本域,名称是:a,值是123,你用get提交后,你的url会变成:index.html?a=123,在获取的时候,就是从浏览器中回去参数了,而不是表单!2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取: 3、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为
阅读全文
摘要:ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后,仍经过Pipeline中各个HttpModule的处理,最后将HTML发送到客户端浏览 器中。HttpModule会在页面处理前和后对页面进行处理,所以它不会影响真正的页面请求。通常用在给每个页面的头部或者尾部添加一些信息(如版 权声明)等.IHttpModule与IHttpHandler的区别整理1) 先后次序.先IHttpModule,后IHttpHandler. 注:Module要看你响应了哪个事件,
阅读全文
摘要:在异步调用中,调用非托管代码,在.net中认为是com平台调用,当平台调用耗时超过60s的时候,系统会抛出一个异常ContextSwitchDeadlock,debug时察看当前Thread,会发现是一个无名的线程抛出的详细出错信息如下:托管调试助手“ContextSwitchDeadlock”在“d:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\UserControlTestContainer.exe”中检测到故障。其他信息: CLR无法从COM上下文0x211c88转换为COM上下文0x211b18,这种状态已持续60秒。拥有
阅读全文
摘要:1) 值类型直接存储其值,变量本身就包含了其实例数据,而引用类型保存的只是实例数据的内存引用。因此,一个值类型变量就永远不会影响到其他的值类型变量,而两个引用类型变量则很有可能指向同一地址,从而发生相互影响。2) 从内存分配上来看,值类型通常分配在线程的堆栈上,作用域结束时,所占空间自行释放,效率高,无需进行地址转换,而引用类型通常分配在托管堆上,由GC来控制其回收,需要进行地址转换,效率降低,这也正是c#需要定义两种数据类型的原因之一。3) 值类型均隐式派生自System.ValueType,而System.ValueType又直接派生于System.Object,每种值类型均有一个隐式的默
阅读全文
摘要:当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页面处理程序类后,ASP.NET 运行时将调用处理程序的 ProcessRequest 方法来处理请求,来创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象的ProcessRequest方法使页面经历了各个阶段:初始化、加载视图状态信息和回发数据、加载页面的用户代码以及 执行回发服务器端事件。之后,页面进入显示模式:收集更新的视图状态,生成 HTML 代码并随后将代码发送到输出控制台。最后
阅读全文