仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 814|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计Setting Database Values to Their Uni...

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:50:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我见过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:

[C#]
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);

[VisualBasic.NET]
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。
因胸联盟 该用户已被删除
5#
发表于 2015-2-13 17:38:16 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
admin 该用户已被删除
6#
发表于 2015-3-4 00:31:55 | 只看该作者
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
活着的死人 该用户已被删除
7#
发表于 2015-3-11 14:59:09 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
透明 该用户已被删除
8#
发表于 2015-3-18 23:28:25 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-26 19:07:54 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-4 14:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表