A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 顾磊磊 于 2013-8-23 20:39 编辑


部分代码如上图所示或者如下所示:
  1. cmd.CommandText = "select age from T_Student where Name=&Name or Age>@aaa";
  2. cmd.Parameters.Add(new SqlParameter("@Name",txtName,Text));
  3. cmd.Parameters.Add(new SqlParameter("@aaa",Convert.ToInt32(txtAge.Text)));
复制代码
其中参数"@aaa",为何要转化成int类型,感觉没必要啊?

8 个回复

倒序浏览
你那个age年龄应该是int类型,而txtage.text是字符串类型,肯定要转成int类型呀。
回复 使用道具 举报
你那个age年龄应该是int类型,而txtage.text是字符串类型,肯定要转成int类型呀。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1 快去参加入学考试吧

查看全部评分

回复 使用道具 举报
带参数是SQL语句,在数据库内部实际上是调用了exec 内部的一个存储过程,而这个过程回根据你传入参数的类行,给参数付上相应的数据库中的数据类型。这里没有强制要求你转换类型,其实是一个object类型即可,但是一般都会转换成相对应的类型。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1 去参加入学考试吧

查看全部评分

回复 使用道具 举报 1 0
因为你的数据表中这个Age字段是int类型,如果你不转换的话,插入数据表的时候就会报错
回复 使用道具 举报
你数据库age这段是int类型的吧......
这种转换是由你数据库字段类型决定的;如果程序与数据库字段值类型不一致的话,程序运行时会报错~~~
回复 使用道具 举报
左岸 中级黑马 2013-8-22 12:43:03
7#
当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。1、显式强制类型转换:显式强制类型转换需要使用强制类型转换运算符2、隐式强制类型转换:隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
感谢各位的回复,测试了一下,不转换数据类型,的确会报错,受教了
回复 使用道具 举报
你看到Age>@aaa,只有值型的数据才能比较啊

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马