2011-04-21 1 views
0

스니 플릿 TableAdapters가 제대로 삽입을 실행에 도착하고 :방법 다음 SELECT_LAST_ID()

int resNo = -1; 
    MoviesTableAdapters.reservationTableAdapter resAdapter = new MoviesTableAdapters.reservationTableAdapter(); 
    if (Int32.TryParse(info[1], out phoneNo)) 
    { 
    resNo = resAdapter.InsertQuery(phoneNo, info[0]); 
    } 

나는 (심지어 내 LAST_INSERT_ID 불구하고, 반환로 1가 계속이 실행을) 다른 무언가이다.

내 쿼리는 여기

INSERT INTO `reservation` (`phone_no`, `password`) VALUES (@phone_no, @password); 
SELECT LAST_INSERT_ID() FROM reservation; 

명백한 결론처럼 정수의 반환 나는, 나는 아직도 일을 얻을 수 resNo를 초기화 상관없이 작동하지,하지만하지 않았다이다 - 나는 그것을 실행할 때 내 웹 사이트에서 MySQL 데이터베이스에 대해 직접 실행하면 정확한 ID를 얻습니다.

이것은 TableAdapter를 잘못 사용하고 있거나 작동 방식을 오해 한 사람 중 하나입니다.

미리 답변 해 주셔서 감사합니다.

답변

-1

여기 내가 100 % 확신하지 못하는 부분이 있습니다.

이유는 각각의 새 쿼리가 새 연결을 사용하여 얻을 수 귀하의 웹 사이트에서 웹 사이트
에서 작동하지 않습니다.

last_insert_id()의 last_id 만 현재 연결 만 반환합니다. 쿼리 1 이후
이 : insert ...는 쿼리 1에서 다른 연결 사용 select last_insert_id() 쿼리 1은 항상 1

을 반환을 그리고 왜, 데이터베이스를 유지하는만큼 똑똑 데이터베이스에 대해 직접 실행 데이터베이스
에서 확인을 작동합니까 동일한 연결이 열리고 query1과 query2가 동일한 연결에서 실행됩니다.


당신은 영구 연결을 사용하도록 C# 코드를 강제하는 방법을 연구 할 필요에 대해 무엇을합니다.