将 varchar 值 转换成数据类型 int 时失败

lihui226 2011-06-08 09:16:18
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]在将 varchar 值 '3.3' 转换成数据类型 int 时失败。
/jxc/ruku/saveruku.asp, 第 167 行


if flag="是" then

set rs = server.CreateObject("adodb.recordset")
sql="select * from pro_rukudan where rukubianhao='"&rukubianhao&"'"
rs.Open sql,conn,0,2,1
for i=1 to 15
if rs.EOF or rs.BOF then exit for
bianhao1=rs("rkshangpinbianhao")
shuliang1=rs("rkshuliang")
response.write rs("rkshuliang")&"<BR>"

set rst=server.CreateObject("adodb.recordset")
sql="exec jxc_updatecangku '"&bianhao1&"','"&shuliang1&"'"
rst.open sql ,conn



数据库shuliang字段是varchar(10)
...全文
11176 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
尔岚蓝烟 2013-03-02
  • 打赏
  • 举报
回复
在将 varchar 值 '库房1 ' 转换成数据类型 int 时失败。,我是这个错, protected void Button1_Click(object sender, EventArgs e) { if (IsNull()) { string sql; sql = "Insert into Result(Name,Number,Unit,Warehouse,Result) values("; sql += "'" + TextBox1.Text + "',"; sql += "'" + TextBox2.Text + "',"; sql += "'" + TextBox3.Text + "',"; sql += "'" + TextBox4.Text + "',"; sql += "'" + DropDownList1.Text + "')"; SqlConnection sqlConnection1 = new SqlConnection(); sqlConnection1.ConnectionString = "server=172.16.101.9;user id=xfp;password=123;initial catalog=ManagerWarehouse"; sqlConnection1.Open(); SqlCommand sqlCommand1 = new SqlCommand(); sqlCommand1.Connection = sqlConnection1; sqlCommand1.CommandText = sql; sqlCommand1.Dispose(); sqlCommand1.ExecuteNonQuery(); sqlConnection1.Close(); Response.Write("<script language='javascript'> window.alert('数据已保存!');</script >"); Response.Redirect("Inventory.aspx"); } }
Lisliefor 2011-06-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lihui226 的回复:]

小数精度不能丢失啊 带一个显示转换 能丢失精度吗
[/Quote]

转float就不会丢失精度了
子夜__ 2011-06-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ssp2009 的回复:]

CAST(字段 as float)
[/Quote]
数据库的都整上来啦?
哈哈
lihui226 2011-06-08
  • 打赏
  • 举报
回复
小数精度不能丢失啊 带一个显示转换 能丢失精度吗
Lisliefor 2011-06-08
  • 打赏
  • 举报
回复
3.3是可以转int的,但是需要一个显式的转换操作:
cast(shuliang as int),这样做会丢失精度,得到3。

一般来说,数据库做比较操作,如果是数字比较,类似'10'这种值为整数的varchar字段,会被自动转为int类型。但是,让数据库自动转类型,如果遇到这种带小数的,就会报错了。
需要你在比较的地方,带一个显式的转换。
快溜 2011-06-08
  • 打赏
  • 举报
回复
CAST(字段 as float)
lihui226 2011-06-08
  • 打赏
  • 举报
回复
不知道怎么改了
快乐的小二兔 2011-06-08
  • 打赏
  • 举报
回复
转double吧
lihui226 2011-06-08
  • 打赏
  • 举报
回复
数量我们要求有小数的
sfxdawn 2011-06-08
  • 打赏
  • 举报
回复
'3.3' 能转换成int? '150'转成int还差不多!
yue547283947 2011-06-08
  • 打赏
  • 举报
回复
'3.3' 能转换成int? '150'转成int还差不多!
bdmh 2011-06-08
  • 打赏
  • 举报
回复
带着引号呢,能转吗

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧