我有一个具有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;
答案 0 :(得分:8)
使用long
:
long result = (long)cmd1.ExecuteScalar();
范围:从–9,223,372,036,854,775,808
到9,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;