不帅 发表于 2015-1-16 22:50:54

ASP.NET网页设计Setting Database Values to Their Uni...

我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。Question:

WhenIminsertingblankvalueintoaSQLServerdatabase,foraDateTimecolumn,mydatabaseitisinserting1/1/1900evenifIassignNulltothevariableinmyapplication.Hereisanexample:


stringxx=null;
//T-SQL="INSERTINTOtempTable(DateTimeColumn)VALUES(xx);"

Canyouhelpmewiththisproblem?

Thanks&regards,

Ravi

Answer:

Ravi,youreinluck.Thisisactuallyaneasyfix-youjusthavetoknowwhattodo(andunfortunatelysometimesfindingtherightthingtodoishalfthebattle).

Whenyouareinsertingdataintoadatabase,theADO.NETdataprovidersandyourdatabasemaydistinguishbetweenanullobjectandanuninitializedvalue.Inyourcase,insertinganullintoaDateTimecolumncausesthedatabasetoseedthefieldwiththedefaultinitializedvalue-1/1/1900.Inrealityyouwanttotellthedatabasethatthefieldinquestionshouldremainuninitialized.Todothatthereisasingletonclassinthe.NETFrameworkthatisdesignedforpassingtoadatabasetorepresentanuninitializedvalue.ThatclassisSystem.DBNull;andspecificallytheValuepropertyoftheclass.

Toinsertarecordintoyourdatabase,andmaintaintheuninitializedstateoftheDateTimefieldsyouwoulddosomethinglikethis:


SqlCommandcmd=newSqlCommand();
cmd.Connection=con;
cmd.CommandText="INSERTINTOmyTable(Name,RegisteredDate,CancelDate)"+
"VALUES(@Name,@RegisteredDate,@CancelDate)";
cmd.Parameters.Add("@Name","DougSeven");
cmd.Parameters.Add("@RegisteredDate",DateTime.Today);
//UseSystem.DBNull.Valuetoleavethefielduninitialized
cmd.Parameters.Add("@CancelDate",System.DBNull.Value);


DimcmdAsNewSqlCommand()
cmd.Connection=con
cmd.CommandText="INSERTINTOmyTable(Name,RegisteredDate,CancelDate)"&_
"VALUES(@Name,@RegisteredDate,@CancelDate)"
cmd.Parameters.Add("@Name","DougSeven")
cmd.Parameters.Add("@RegisteredDate",DateTime.Today)
UseSystem.DBNull.Valuetoleavethefielduninitialized
cmd.Parameters.Add("@CancelDate",System.DBNull.Value)

InmanycasesIwillactuallyperformchecksonthevaluepassedtomyinsertorupdateoperationtodetermineifDBNull.ValueshouldbesenttothestoredprocedureIaminvoking.IfyouweretospendsometimelookingatthecodeIwriteintherealworld,youwouldseesomethinglikethis(thisiscodedirectfromaclientapplication):

Ifuser.FirstName=String.EmptyThen
cmd.Parameters("@FirstName").Value=System.DBNull.Value
Else
cmd.Parameters("@FirstName").Value=user.FirstName
EndIf

Ifuser.LastName=String.EmptyThen
cmd.Parameters("@LastName").Value=System.DBNull.Value
Else
cmd.Parameters("@LastName").Value=user.LastName
EndIf

Ifuser.RegisteredDate=NothingThen
cmd.Parameters("@RegisteredDate").Value=System.DBNull.Value
Else
cmd.Parameters("@RegisteredDate").Value=user.RegisteredDate
EndIf

Summary

Tosetvaluesinadatabasetotheiruninitializedstate,usetheSystem.DBNull.Valuestructure.YoucanpassthisvalueinusingaT-SQLcommand,orastoredprocedure-passingDBNull.Valueasaparameter.

其实Java之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是Java的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。

海妖 发表于 2015-1-20 05:34:38

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

小妖女 发表于 2015-1-28 18:54:22

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

小魔女 发表于 2015-2-5 21:39:33

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

因胸联盟 发表于 2015-2-13 17:38:16

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

admin 发表于 2015-3-4 00:31:55

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

活着的死人 发表于 2015-3-11 14:59:09

主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。

透明 发表于 2015-3-18 23:28:25

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

冷月葬花魂 发表于 2015-3-26 19:07:54

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
页: [1]
查看完整版本: ASP.NET网页设计Setting Database Values to Their Uni...