2011-05-11 2 views
1

뉴스 정보를 삽입하기 위해 다중 뷰 인덱스를 사용하고 있습니다. 첫 번째보기에서 사용자는 다음 단추를 클릭하면 db에 삽입되는 뉴스의 세부 정보를 입력 할 수 있습니다. 두 번째보기는 사용자에게 해당 뉴스의 이미지를 추가하도록 허용합니다 (3 개의 이미지 만 허용).테이블에 삽입 된 마지막 행의 기본 키를 얻는 방법

문제는 첫 번째보기가 주 키 newsID로 dbo.newsdetail 테이블에 데이터를 삽입하는 반면 두 번째보기는 방금 newsimages 테이블에 추가 된 뉴스의 newsId를 사용하여 존경받는 이미지를 추가해야한다는 것입니다. 뉴스 ID가 두 테이블의 외래 키로 작동하기 때문에 첫 번째보기에 추가 된 세부 정보 의 뉴스 ID를 얻는 방법을 모르겠습니다. 어떤 도움이나 제안도 높이 평가 될 것입니다.

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(); 

} 
+0

어떤 DBMS를 사용하고 있습니까? PostgreSQL을 사용하면 'INSERT ... RETURNING ...'을 사용할 수 있습니다. –

답변

2

별도의 SQL 문

SELECT SCOPE_IDENTITY() 

또는 OUTPUT clause

INSERT MyTable (...= 
OUTPUT INSERTED.KeyCol 
VALUES (...) --Or SELECT ... FROM Another table) 

편집 :

  • 변경하여 삽입 문은 어쩌구에 내
  • 변화 .ExecuteNonQuery을()에 맞게 = xxx.ExecuteScalar()
+0

저장해야합니다. 코드가 뒤에 다른 방법으로 사용되는 ID, 코드 plz를 제게 제공 할 수있는 코드를 편집했습니다 –

+0

건설적인 피드백은 downvote와 함께 갈 수 있습니까? – gbn

0

당신의 INSERT 문의 일환으로 (첫 번째 뉴스 테이블에)가 실행 된 후,

SELECT SCOPE_IDENTITY() 

실행하고 호출자에게 NewsId 값을 반환합니다.

Ref.

+0

코드를 다른 방법으로 사용하려면 해당 ID를 저장해야합니다. 코드를 편집하면 plz 쿼리를 제공 할 수 있습니다. –