向各位请教一个asp.net中数据类型转换的问题!

flyinbob12349878 2004-06-28 11:51:56
我写了一个asp.net程序,如下:
SqlConnection objConnection;
SqlCommand objCommand;
objConnection=new SqlConnection("server=bob;trusted_connection=true;database=Northwind;uid=sa;pwd=;integrated security=true;");
objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='radEmployees.SelectedItem.Value'",objConnection);

objConnection.Open();
dgEmployee.DataSource=objCommand.ExecuteReader();
dgEmployee.DataBind();
objConnection.Close();
其中radEmployees是一个RadioButtonlist控件,dgEmployee是一个DataGrid.

编译时产生如下异常:

将 varchar 值 'radEmployees.SelectedItem.Value' 转换为数据类型为 int 的列时发生语法错误。
Exception Details: System.Data.SqlClient.SqlException: 将 varchar 值 'radEmployees.SelectedItem.Value' 转换为数据类型为 int 的列时发生语法错误。

Source Error:
Line 39:
Line 40: dgEmployee.DataSource=objCommand.ExecuteReader();
Line 41: dgEmployee.DataBind();异常点
Line 42: objConnection.Close();
Line 43:

请教各位大虾,这样的数据转换问题应该如何解决。请各位帮帮忙,急等中!!!


...全文
91 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fly_miss 2004-06-29
coollzh(良子) 的少了一个双引号

objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='"+radEmployees.SelectedItem.Value+"'",objConnection);
回复
flyinbob12349878 2004-06-29
请教各位高手,能不能跟我讲讲这其中大概的原理,我现在觉得我对类型转换一无所知,
我现在应该怎么样学习这方面知识。

请各位大虾指点!
回复
popcode 2004-06-29
try

objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='"+ Convert.ToInt32(radEmployees.SelectedItem.Value) +"'",objConnection);
回复
coollzh 2004-06-29
objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='radEmployees.SelectedItem.Value'",objConnection);

着句话有问题,
objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='"+radEmployees.SelectedItem.Value+"',objConnection);
回复
singleflower 2004-06-29
建议你看看SQL数据库语言方面的书籍
回复
zhn0410 2004-06-29
实际上你所遇到的问题不是数据类型转换的问题,EmployeeID='radEmployees.SelectedItem.Value'中的'radEmployees.SelectedItem.Value'在sql把它当作字符串处理了,应该使用‘“+变量名+”’格式传递参数给sql。
回复
zhn0410 2004-06-29
我建议你看一下sql和.net的联机文档和范例。
回复
ml_net 2004-06-29
objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='"+radEmployees.SelectedItem.Value+"',objConnection);
===>
objCommand=new SqlCommand("select FirstName,LastName,Country,Region,City,Notes from Employees where EmployeeID='"+radEmployees.SelectedItem.Value+"'",objConnection);
回复
whatandwhy 2004-06-29
为什么不看MSDN
回复
rickjelly2004 2004-06-29
数据库不熟呀
回复
flyinbob12349878 2004-06-29
谢谢各位大虾帮忙,我终于解决了这个问题,

但是我现在对数据类型转换的知识还是很不清楚,很模糊

请问各位高手我现在应该看哪些方面的资料,来弥补我的不足!

希望得到个位的帮助,谢谢!
回复
coollzh 2004-06-29
是的,谢谢 fly_miss(新年新气象) ,我发表后就发现了

另外在radEmployees.SelectedItem.Value的时候最好判断一下是否为null
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-06-28 11:51
社区公告
暂无公告