开发常见问题总结(三)

1.Sqlserver2005中cast和convert的用法:

将某种数据类型的表达式显式转换为另一种数据类型。CAST CONVERT 提供相似的功能。

语法

使用 CAST

CAST ( expression AS data_type )

使用 CONVERT

CONVERT (data_type[(length)], expression [, style])

参数

expression

是任何有效的 Microsoft® SQL Server™ 表达式。

data_type

目标系统所提供的数据类型,包括 bigint sql_variant。不能使用用户定义的数据类型

length

ncharnvarcharcharvarcharbinary varbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime smalldatetime 数据转换为字符数据(ncharnvarcharcharvarcharnchar nvarchar 数据类型);或者字符串格式样式,借以将 floatrealmoney smallmoney 数据转换为字符数据(ncharnvarcharcharvarcharnchar nvarchar 数据类型)。

2.多次为 'RET' 指定了列 'article_id'。

Select ret.* from select a.aticle_id,a.title,a.content,b.article_id  from table_a as atable_b as b where a,artcle_id=b.article_id as ret

去掉b.article_id即可。在进行关联条件的查询时,后面的一个条件不是必须条件。(一直以为后面的条件是必须在前面查询条件中药出现的)

3.通用模块通过js调用。

通过在后台代码中输出代码,比如outputsearch.aspx,前台页面去掉html部分的代码,然后在其他页面通过类似JavaScript调用的方式,直接引用对应的文件即可。这样模块实现重用,很方便。

4.在将 nvarchar 值 '1-' 转换成数据类型 int 时失败。

按照月份查询10,11,12月时,报上述错误,是因为数据类型是nvarchar,在后台switch条件中的10,11,12加上单引号,也就是成为字符串类型就解决啦。

5.Sql存储过程结果的调试。

在sql查询器中找到对应的存储过程,右键选择执行存储过程,输入对应的条件,然后输出sql语句。(做分页的时候用到的)

6.requeset.[form]无法获取到的页面中的参数值

解决方案,当时页面form中用的是get方法,但是页面获取传值的方法确实用的request.form,修改为requeset.QueryString即可。

知识补充:

A.ruquest.form和request.querystring的区别

Request.Form:获取以POST方式提交的数据(接收Form提交来的数据);

Request.QueryString:获取地址栏参数(GET方式提交的数据)

Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryStringFormServerVariable中都搜寻一遍。而且有时候也会得到不同的结果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程序将在QueryStringServerVariable中也搜寻一遍。如果正好你的QueryString或者ServerVariable里面也有同名的项,你得到的就不是你原本想要的值了。

B.表单提交中Get和Post方式的区别  

1. get从服务器上获取数据post向服务器传送数据

2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据

 4. get传送的数据量较小,不能大于2KBpost传送的数据量较大,一般被默认为不受限制。 

5. get安全性非常低,post安全性较高。

原文地址:https://www.cnblogs.com/gxg2008540/p/1890365.html