次のクエリを使用して行を挿入しています。行が挿入されましたが、挿入の代わりに主キーを取得したいと考えています。行は正常に挿入されましたが、主キーを取得するのに苦労しています。すべてうまくいきますが、lastID = Convert.ToInt32(Id.Value);
InvalidCastException と表示されます。質問「行を挿入した直後に主キーまたはその他の属性を取得する」もこの質問に関連しています
注:主キー列の名前は「Id」で、int型です。これはasp.netで行っています
SqlParameter Id =new SqlParameter("Id" , SqlDbType.Int);
Id.Direction = ParameterDirection.Output;
//conn.Open();
//int inserted = 0;
//int lastID = 0;
string insertOffer = "INSERT INTO Offers (userId, column1, column2, column3)
VALUES (SomeINT, 'abc', 'abc', 'abc');select Id=SCOPE_IDENTITY()";
int lastID = 0;
using (SqlConnection conn = new SqlConnection(Connection))
{
conn.Open();
using (SqlCommand comm = new SqlCommand(insertOffer, conn))
{
comm.Parameters.Add(Id);
comm.ExecuteNonQuery();
lastID = Convert.ToInt32(Id.Value);
}//end using comm
}//end using conn