无法将参数值从字符串转换为int64

时间:2014-12-12 09:05:45

标签: c# sql sql-server

我收到错误:无法将参数从字符串转换为Int 64 这是ligne:

com.Parameters.Add("@NBC", SqlDbType.BigInt).Value = ligneGridBC1.Cells["NBcmd"].ToString();

我已经尝试了

com.Parameters.Add("@NBC", SqlDbType.BigInt).Value = Convert.ToInt64(ligneGridBC1.Cells["NBcmd"].ToString());

com.Parameters.Add("@NBC", SqlDbType.BigInt).Value = Int64.Parse(ligneGridBC1.Cells["NBcmd"].ToString()); 

我的sql表包含 NBC BigInt 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

ligneGridDC1.Cells [“NBcmd”]包含哪种类型的对象?

在对象上调用.ToString()将默认返回对象的类型,除非已覆盖ToString方法。你正在尝试将'SomeType.Cell'转换为Int64。

试试这个......

        Int64 a = 0;
        if(!Int64.TryParse(ligneGridBC1.Cells["NBcmd"].ToString(), out a))
            throw new InvalidCastException(ligneGridBC1.Cells["NBcmd"].ToString());
        com.Parameters.Add("@NBC", SqlDbType.BigInt).Value = a;

希望有所帮助