已解决

【精华】老师的vs.net2003是否搭配net2.0?已解决

学员:陈健提问时间:2008-09-15 19:03:21

异常详细信息: System.FormatException: 输入字符串的格式不正确。
源错误:
行 56: mycommand1.Dispose()
行 57:
行 58: strsql = "insert into login(userid,username,userpwd,userright,useremail) values('" + i + "','"
我跟老师一样没有处理i,就会出错,必须显式转换成string才正确。 老师是不是用的是.net2.0呢?

采纳为答案

回答人:潘志红回答时间:2008-09-18 14:26:10

2003版使用的.NET是1.0 或1.1的,使用2.0就会出错。
至于i 的类型是由字段userid的类型决定的,我这里使用的是int类型,因此可以直接用i;如果userid的类型是char或varchar类型,一般就要用i.ToString()。
至于framework版本之间的区别,一般听从微软的建议,因为得详细阅读它的说明才能知道他们之间的区别。

学员对该答案的评价 谢谢老师!

其他回答

回答人:alva745回答时间:2008-09-16 09:29:52
关于.Net版本问题,我还知道一点
到目前为止,.Net有以下版本: 1.0 1.1 2.0 3.0 3.5
VS2003集成了1.0或1.1
VS2005集成了2.0和1.1和1.0
VS2008集成了3.5和3.0和2.0
据我所知是这样,不过不敢完全保证正确。
回答人:polarstar (.NET学习顾问)回答时间:2008-09-16 10:30:39
2.0是可以直接+i,好像1.0不能这样写,我没有装1.0无法验证,记忆中是不可以的。C#使用越来越自由,到了3.5很多类型都可以不用转换了,像脚本语言一样,还有通用类型var。
不过我还是喜欢写i.ToString(),可能以前用1.0用多了吧,形成习惯了,我觉得还是这样写好,心里有底,呵呵。
回答人:陈健回答时间:2008-09-17 12:58:06
有讨论,学习起来才有趣!
建议老师要在课程中给学员们点一下这个.net framework的差别,否则,大家会走弯路的。。因为,老师不做i.ToString()是可以编译通过的,但是初学者可能会不清楚个中奥义。。