ASP编程:一般你会在甚么中央碰到DBNull?
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)明天不但被外包,还要跑到虹桥机场往协助实行。惋惜离开这里又好象没有甚么事干。。:)恰好能够写写Blog。恰好这几天写数据库操纵对照多,是时分写写关于DBNull的器材了。
DBNull在DotNet是独自的一个范例System.DBNull。它只要一个值DBNull.Value。DBNull间接承继Object,以是DBNull不是string,不是int,也不是DateTime。。。
可是为何DBNull能够暗示数据库中的字符串,数字,或日期呢?缘故原由是DotNet贮存这些数据的类(DataRow等)都是以object的情势来贮存数据的。
关于DataRow,它的row前往的值永久不为null,要末就是详细的为column的范例的值。要末就是DBNull。以是row.ToString()这个写法永久不会在ToString那边产生NullReferenceException。
DBNull完成了IConvertible。可是,除ToString是一般的外,其他的ToXXX城市抛出不克不及转换的毛病。
在IDbCommand(OleDbCommand,SqlCommand...)的ExecuteScalar的前往值中,情形能够如许剖析:
select1如许前往的object是1
selectnull如许前往的是DBNull.Value
selectisnull(null,1)前往的是1
selecttop0idfromtable1如许前往的值是null
selectisnull(id,0)fromtable1where1=0前往的值是null
这里ExecuteScalar的划定规矩就是,前往第一列,第一行的数据。假如第一列第一行不为空,那末ExecuteScalar就间接对应的DotNet的值。假如有第一行,可是第一列为空,那末前往的是DBNull。假如一行都没有,那末ExecuteScalar就前往null
划定规矩就是如许的。这里简单犯的一个毛病是,把ExecuteScalar前往DBNull与null的情形搅浑,比方:
stringusername=cmd.ExecuteScalar().ToString();
除非你以为cmd实行后,一定最少有一行数据,不然这里就会堕落。
又大概selectidfromusertablewhereusername=@name如许的sql语句,假如找不到纪录,那末ExecuteScalar则会前往null,以是万万不要
intuserid=Convert.ToInt32(cmd.ExecuteScalar());
大概你会如许写SQL语句:selectisnull(id,0)fromusertablewhereusername=@name
可是intuserid=Convert.ToInt32(cmd.ExecuteScalar());仍然会堕落,由于下面的语句不建立时,仍旧是不前往任何行。
关于IDbDataParameter(OleDDbParameter,SqlParameter..)的Value,假如为null,则代表该参数没有指定,大概是代表DEFAULT。假如为DBNull.Value,则代表SQL中的NULL
以是,假如你要挪用存储历程,内里有参数@valnvarchar(20)="AABB",
那末cmd.Parameters["@val"].Value=null代表利用这个默许的"AABB"
而cmd.Parameters["@val"].Value=DBNull.Value代表利用NULL来传给@val
你能够用Convert.IsDBNull来判别一个值是不是DBNull。注重Convert.IsDBNull(null)是false。
备注:以上的SQL语句满是指SQLSERVER2000的。其他的数据库是不是为一样的举动,我不断定。
(先写到这里,想到再增补)
</p>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 不能只是将它停留在纸上谈兵的程度上。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 那么,ASP.Net有哪些改进呢? 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 那么,ASP.Net有哪些改进呢?
页:
[1]