ここに例があります。これはうまくいくようですが、Prepare() に出くわしたばかりで、それを使用する必要があるかどうか疑問に思っています。
con.Open();
cmd.Connection = コン;
cmd.CommandText = "INSERT INTO tbl ([val], [desc]) OUTPUT INSERTED.tbl_id VALUES (@val, @desc); "; cmd.Parameters.AddWithValue("@val", AccountSession.Current.UserId); cmd.Parameters.AddWithValue("@desc", Desc); retVal.id = cmd.ExecuteScalar().ToString();