输入字符串格式不正确。。

aniss 2011-07-06 09:33:49
数据库中有1个Card字段。数据类型为32位。现在要把Card字段读取出来, 经过转换 换成int64字段,然后再插入数据库的 Card64 字段中。
转换过程已经写好了,现在问题是老是报错。出现 “输入的字符串格式不正确”谁知道具体该怎么写,读取与插入那一部分
...全文
153 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
至尊贱客 2011-07-12
  • 打赏
  • 举报
回复
先转成double的再转成int的

Int64 value=((int)Convert.ToDouble("123"))
jiangmurong 2011-07-08
  • 打赏
  • 举报
回复
转换时有问题~~
kingdom_0 2011-07-07
  • 打赏
  • 举报
回复

Int64 value= Convert.ToInt64(Convert.ToInt32("123"));
燃烧土豆 2011-07-06
  • 打赏
  • 举报
回复
建议打断点,把转换后的值复制到txt中,用左右键移动,就能看出有没空格了
ren141 2011-07-06
  • 打赏
  • 举报
回复
数据库中有1个Card字段。数据类型为32位。现在要把Card字段读取出来, 经过转换 换成int64字段,然后再插入数据库的 Card64 字段中。
转换过程已经写好了,现在问题是老是报错。出现 “输入的字符串格式不正确”谁知道具体该怎么写,读取与插入那一部分
燃烧土豆 2011-07-06
  • 打赏
  • 举报
回复
看了lz的问题,......
及后面的回复,楼主应该没有用实体表传值吧,
那么你数据库是什么类型与程序代码上是什么类型可以说是毫无关系,唯一有要求的是一定要数字
那么报错就可想而知了,你的值中有空格
aniss 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maco_wang 的回复:]
SQL code

declare @table table (colname varchar(32))
insert into @table
select '20198972201989722019897220198972' union all
select '20198972201989722019897220198973' union all
select '2019897220……
[/Quote]



string sql = "SELECT Card FROM table"; // 报错,输入的字符串格式不正确 数据库的数据为纯数字7位数 如1234567

string sql = "1234567"; //手动输入字符串 不报错
aniss 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maco_wang 的回复:]
如果你的32位Card中有字母自然是转换失败的。
[/Quote]


string sql = "SELECT Card FROM table"; // 报错,输入的字符串格式不正确 数据库的数据为纯数字7位数 如1234567

string sql = "1234567"; //手动输入字符串 不报错
龍月 2011-07-06
  • 打赏
  • 举报
回复
20198972201989722019897220199077 这个位数太长了,用 long 试试 此消息通过 【CSDN论坛 Winform测试版】 回复!有关此工具
叶子 2011-07-06
  • 打赏
  • 举报
回复
如果你的32位Card中有字母自然是转换失败的。
叶子 2011-07-06
  • 打赏
  • 举报
回复

declare @table table (colname varchar(32))
insert into @table
select '20198972201989722019897220198972' union all
select '20198972201989722019897220198973' union all
select '20198972201989722019897220198974' union all
select '20198972201989722019897220198975' union all
select '20198972201989722019897220198976' union all
select '20198972201989722019897220198977'

select * from @table
/*
colname
--------------------------------
20198972201989722019897220198972
20198972201989722019897220198973
20198972201989722019897220198974
20198972201989722019897220198975
20198972201989722019897220198976
20198972201989722019897220198977
*/

--得到其中最大的一个,转成int,然后+100,再存入表中
insert into @table
select cast(max(colname) as decimal(32,0))+100 from @table
--再看一下结果
select * from @table
/*
colname
--------------------------------
20198972201989722019897220198972
20198972201989722019897220198973
20198972201989722019897220198974
20198972201989722019897220198975
20198972201989722019897220198976
20198972201989722019897220198977
20198972201989722019897220199077
*/


龍月 2011-07-06
  • 打赏
  • 举报
回复
调试看下读取出来的是什么数据,是不是多了空格,还是什么。 此消息通过 【CSDN论坛 Winform测试版】 回复!有关此工具

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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