#asp.net #sql #database #multiview
#asp.net #sql #База данных #multiview
Вопрос:
Я использую multiview index для вставки сведений о новостях. В первом представлении пользователь может ввести подробную информацию о новостях, которая затем вставляется в базу данных при нажатии кнопки «Далее». Второе представление позволяет пользователю добавлять изображения этой новости (разрешено только 3 изображения) ,
у меня проблема в том, что первое представление вставляет данные в таблицу dbo.newsdetail с идентификатором первичного ключа NewSID , в то время как второе представление должно добавлять соответствующие изображения, используя этот идентификатор новости, только что добавленной в таблицу newsimages. Я просто не знаю, как получить NewSID сведений, которые добавляются в первом представлении, поскольку идентификатор новости работает как внешний ключ для обеих таблиц. Любая помощь или предложения будут высоко оценены.
static public void insertNews(string newsDescription, string newsImage, string newsTitle)
{
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlCommand insertNews = new SqlCommand("Insert INTO caravanNews(newsDescription, newsImage, newsTitle) VALUES ('" newsDescription "', '" newsImage "' , '" newsTitle "')",conn);
insertNews.ExecuteNonQuery();
conn.Close();
}
Комментарии:
1. Какую СУБД вы используете? С PostgreSQL вы могли бы использовать
INSERT ... RETURNING ...
Ответ №1:
Отдельный оператор SQL
SELECT SCOPE_IDENTITY()
INSERT MyTable (...=
OUTPUT INSERTED.KeyCol
VALUES (...) --Or SELECT ... FROM Another table)
Редактировать:
- измените свой оператор insert, чтобы он соответствовал моему
- измените .ExecuteNonQuery() в blah = xxx.ExecuteScalar()
Комментарии:
1. мне нужно сохранить этот идентификатор для использования другим методом в коде, я отредактировал код, можете ли вы предоставить мне запрос, пожалуйста
Ответ №2:
Как часть вашей инструкции INSERT (в первую таблицу новостей), после ее выполнения выполните
SELECT SCOPE_IDENTITY()
и вернуть NewsId
значение вызывающему.
Комментарии:
1. мне нужно сохранить этот идентификатор для использования другим методом в коде, я отредактировал код, можете ли вы предоставить мне запрос, пожалуйста