【发布时间】:2015-11-20 03:00:27
【问题描述】:
将 varchar 值“DADE”转换为数据类型 int 时转换失败。
我使用的SQL 命令是这样的:
SELECT * FROM p_details
WHERE LOWER(name) LIKE '%has%ln%'
AND
CODE = 13
AND
T_CODE='H'
我的代码是:
SqlDataReader drr = com4.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(drr); <--error line
GridView7.DataSource = dt;
GridView7.DataBind();
【问题讨论】:
-
请多放一些代码不应该出现那个错误,因为你没有转换 DADE
-
这是我唯一拥有的东西,从数据库中获取数据并关闭连接。在数据库表中,所有列都为 varchar,但我不知道它为什么要转换为 int。
-
尝试使用
SqlDataAdapter代替:using(var da=new SqlDataAdapter(sql, con))da.Fill(dt); -
@TimSchmelter
SqlDataAdapter在这种情况下会做什么? -
@krishnakumar:您声明所有列都是 varchar,并且您没有将任何内容转换为 int,但您的 sql 是
WHERE CODE = 13。如果 code 也是一个 varchar 你正在将 13 转换为它。您的其中一列中有一个值DADE。它是哪一列?您从哪里访问该列?
标签: c# sql asp.net sql-server gridview