Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C时指定的强制转换无效#_C#_Asp.net_Database - Fatal编程技术网

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

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

我有一个数据库,它有一个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;
使用:

范围:从
–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;