使用C#指定的强制转换无效

时间:2013-11-20 15:50:28

标签: c# asp.net database

我有一个具有ID列的数据库,ID列是BIGINT类型。我相信我的问题与转换ID列的正确类型有关,以使插入代码起作用。我试图转换它但无法获得正确的语法。

这是我的代码......

OleDbCommand cmd1 = new OleDbCommand("select ID, Name", con);
cmd1.Connection = con;
con.Open();
int result = (int)cmd1.ExecuteScalar();
sqlcmd.CommandText = "INSERT INTO MyTable(ID, Name) VALUES(@ID, @Name)";
sqlcmd.Parameters.Clear();
sqlcmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = result;

2 个答案:

答案 0 :(得分:8)

使用long

long result = (long)cmd1.ExecuteScalar();    

范围:从–9,223,372,036,854,775,8089,223,372,036,854,775,807

签名的64位整数System.Int64

答案 1 :(得分:1)

BIGINT = 64位,因此请使用C#long类型或System.Int64

另外,请更改此行:

sqlcmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = result;

对此:

sqlcmd.Parameters.Add("@ID", SqlDbType.BigInt).Value = result;