Я уже через пару недель прошел через все, чтобы найти заявления, работающие на уровне базы данных. Ниже мой код, и я чувствую, что я очень близко к ответу, но продолжаю получать -1
, возвращенный с SCOPE_IDENTITY()
. Customer_Name
экономит место на столе, просто отлично с автоматическим приращением. Мне просто нужен Customer_ID
, так что я могу разместить его в таблице Customer_Address
для идентификации адреса одному до многих.Прочитанный идентификатор последнего вставленного
Заранее за вашу помощь.
if (customer_ID == "")
{
// add new customer
string SQL = "INSERT INTO Customer (Customer_Name) VALUES (@customer_Name)";
SqlCommand sqlCommand = new SqlCommand(SQL, sqlConnection);
sqlCommand.Parameters.Add("@customer_Name", SqlDbType.VarChar, 100).Value = customer_Name;
// get last inserted Customer_ID
string SQL_customerId = "SELECT SCOPE_IDENTITY()";
SqlCommand sqlCommand_customerId = new SqlCommand(SQL_customerId, sqlConnection);
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
sqlCommand_customerId.ExecuteNonQuery();
// string SQL_ = "SELECT Customer_ID FROM Customer";
// SqlCommand sqlCommand = new SqlCommand(SQL, sqlConnection);
// int maxId = Convert.ToInt32(sqlCommand.ExecuteScalar());
sqlConnection.Close();
}
Вы считали [предложение OUTPUT] (http://msdn.microsoft.com/en-us/library/ms177564.aspx)? –
Я так много изучил, что кажется, что Scope Identity() является самым сильным методом получения ID –