Полагаю, вы хотите получить личность вновь вставленного студента, а затем вставить ее в таблицу «Записи», верно?
Я настоятельно рекомендую вам использовать SCOPE_IDENTITY()
вместо @@ IDENTITY, что вызывает некоторые проблемы, например, если у вас есть, например. триггеры на вашем столе. У Пинала Дейва есть отличное сообщение в блоге об этих проблемах.
Кроме того, если вы вызываете SQL Server из C #, я настоятельно рекомендую вам использовать собственный .NET SQL Provider (SqlConnection, SqlCommand и т. Д.), А не oledbcommand.
Попробуйте это
using (SqlConnection _con = new SqlConnection("server=(local);database=TEST;integrated security=SSPI;"))
{
string queryStmt = "INSERT INTO dbo.Students (StudentName) VALUES('reza'); " +
"INSERT INTO dbo.Records(RecordID, StudentID) VALUES (20, SCOPE_IDENTITY());";
using (SqlCommand _cmd = new SqlCommand(queryStmt, _con))
{
try
{
_con.Open();
_cmd.ExecuteNonQuery();
_con.Close();
}
catch (Exception exc)
{
string msg = exc.Message;
}
}
}
Это, безусловно, работает, я только что успешно проверил его в моей настройке.