System.FormatException: Input string was not in a correct format.看不出是什么原因,请教!

时间:2021-12-25 19:37:37
dbParameter = dbCommand.CreateParameter();
dbParameter.ParameterName = "@numberofbook";
dbParameter.Direction = ParameterDirection.Output;
dbParameter.DbType = DbType.Int32;
dbCommand.Parameters.Add(dbParameter);
...
...//添加其它参数,以及调用存储过程

int howManyBooks = Int32.Parse(dbCommand.Parameters["@numberofbook"].Value.ToString());

现在就是最后这一句的时候会报错:System.FormatException: Input string was not in a correct format.

存储过程中,out参数@numberofbook为int型

请教一下,问题可能出现在什么地方?

7 个解决方案

#1


System.FormatException: Input string was not in a correct format

提示很明显,输入的字符串格式不正确。
1、在你时间参数那块检查一下

#2


引用 1 楼 HEROWANG 的回复:
System.FormatException: Input string was not in a correct format

提示很明显,输入的字符串格式不正确。
1、在你时间参数那块检查一下

字符串格式不正确我晓得,但是不知道为什么出现这样的原因。
存储过程我运行过,似乎结果是正确的。返回的out参数是Int型。

什么时间参数?

#3


关键是你这个要调用这个存储过程,对吧。那么你是不是有些在外部输入的参数?看你输入参数的格式对不对?

#4


引用楼主 CompilerZy 的帖子:
dbParameter = dbCommand.CreateParameter(); 
dbParameter.ParameterName = "@numberofbook"; 
dbParameter.Direction = ParameterDirection.Output; 
dbParameter.DbType = DbType.Int32; 
dbCommand.Parameters.Add(dbParameter); 
... 
...//添加其它参数,以及调用存储过程 

int howManyBooks = Int32.Parse(dbCommand.Parameters["@numberofbook"].Value.ToString()); 

现在就是最后这一句的时候会报错:Syste…


try:

int howManyBooks = Convert.toint32(dbCommand.Parameters["@numberofbook"].Value.ToString());  

#5


引用 4 楼 yygyogfny 的回复:
引用楼主 CompilerZy 的帖子:
dbParameter = dbCommand.CreateParameter();
dbParameter.ParameterName = "@numberofbook";
dbParameter.Direction = ParameterDirection.Output;
dbParameter.DbType = DbType.Int32;
dbCommand.Parameters.Add(dbParameter);
...
...//添加其它参数,以及调用存储过程

int howManyBooks = Int32.Parse(dbCommand.Parameters["@numberofbook"].Value.ToString());

现在就是最后这一…

一样的错误...没有什么区别啊

#6


引用 3 楼 HEROWANG 的回复:
关键是你这个要调用这个存储过程,对吧。那么你是不是有些在外部输入的参数?看你输入参数的格式对不对?

是的。其他的应该是正确的。因为我试过把这句话注释掉,其他外部输入的参数不变,就没有问题。

#7


现在我试了先获得dbCommand.Parameters["@numberofbook"].Value.ToString()的型式。
结果这个字符串既不是我给的一个初始字符串,也不为空。但是如果我要将这个字符串的值给Label.Text的话,又没有字符出现。

存储过程执行的结果应该是18

#1


System.FormatException: Input string was not in a correct format

提示很明显,输入的字符串格式不正确。
1、在你时间参数那块检查一下

#2


引用 1 楼 HEROWANG 的回复:
System.FormatException: Input string was not in a correct format

提示很明显,输入的字符串格式不正确。
1、在你时间参数那块检查一下

字符串格式不正确我晓得,但是不知道为什么出现这样的原因。
存储过程我运行过,似乎结果是正确的。返回的out参数是Int型。

什么时间参数?

#3


关键是你这个要调用这个存储过程,对吧。那么你是不是有些在外部输入的参数?看你输入参数的格式对不对?

#4


引用楼主 CompilerZy 的帖子:
dbParameter = dbCommand.CreateParameter(); 
dbParameter.ParameterName = "@numberofbook"; 
dbParameter.Direction = ParameterDirection.Output; 
dbParameter.DbType = DbType.Int32; 
dbCommand.Parameters.Add(dbParameter); 
... 
...//添加其它参数,以及调用存储过程 

int howManyBooks = Int32.Parse(dbCommand.Parameters["@numberofbook"].Value.ToString()); 

现在就是最后这一句的时候会报错:Syste…


try:

int howManyBooks = Convert.toint32(dbCommand.Parameters["@numberofbook"].Value.ToString());  

#5


引用 4 楼 yygyogfny 的回复:
引用楼主 CompilerZy 的帖子:
dbParameter = dbCommand.CreateParameter();
dbParameter.ParameterName = "@numberofbook";
dbParameter.Direction = ParameterDirection.Output;
dbParameter.DbType = DbType.Int32;
dbCommand.Parameters.Add(dbParameter);
...
...//添加其它参数,以及调用存储过程

int howManyBooks = Int32.Parse(dbCommand.Parameters["@numberofbook"].Value.ToString());

现在就是最后这一…

一样的错误...没有什么区别啊

#6


引用 3 楼 HEROWANG 的回复:
关键是你这个要调用这个存储过程,对吧。那么你是不是有些在外部输入的参数?看你输入参数的格式对不对?

是的。其他的应该是正确的。因为我试过把这句话注释掉,其他外部输入的参数不变,就没有问题。

#7


现在我试了先获得dbCommand.Parameters["@numberofbook"].Value.ToString()的型式。
结果这个字符串既不是我给的一个初始字符串,也不为空。但是如果我要将这个字符串的值给Label.Text的话,又没有字符出现。

存储过程执行的结果应该是18