C# 使用C时指定的强制转换无效#
我有一个数据库,它有一个ID列,ID列是BIGINT类型。我认为我的问题在于将ID列转换为正确的类型,以便插入代码正常工作。我试图转换它,但无法获得正确的语法 这是我的密码C# 使用C时指定的强制转换无效#,c#,asp.net,database,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 = "INSE
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;
使用:
范围:从–9223372036854775808
到9223372036854775807
有符号64位整数
System.Int64
BIGINT
=64位,因此使用C#long
类型或System.Int64
另外,更改此行:
sqlcmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = result;
为此:
sqlcmd.Parameters.Add("@ID", SqlDbType.BigInt).Value = result;
此行
cmd1.Connection=con代码>是多余的。确切的例外是什么?除了cast问题,为什么要插入具有相同ID的记录?
sqlcmd.Parameters.Add("@ID", SqlDbType.BigInt).Value = result;