2012-08-02 10 views
4

데이터베이스에 제공된 마지막 기본 키를 반환 할 수 있습니까?데이터베이스에서 기본 키 가져 오기

이것은 부분적으로 데이터베이스에 연결하고 추가하는 방법이지만, 더 많은 정보가 필요하면 질문하십시오.

public partial class MainWindow : Window 
{ 

System.Data.SqlClient.SqlConnection con; 
System.Data.SqlClient.SqlDataAdapter da; 

DataSet sessions; 

홈페이지

모습을 가지고위한
public MainWindow() 
{ 
    InitializeComponent(); 
} 

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    con = new System.Data.SqlClient.SqlConnection(); 

    sessions = new DataSet(); 

    con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\md\\PokerDataBase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; 

    con.Open(); 

    string sql = "SELECT * From Sessions"; 
    da = new System.Data.SqlClient.SqlDataAdapter(sql, con); 
    da.Fill(sessions, "Sessions"); 

    con.Close(); 

    System.Data.SqlClient.SqlCommandBuilder cb; 
    cb = new System.Data.SqlClient.SqlCommandBuilder(da); 

    DataTable dt = sessions.Tables["Sessions"]; 


    DataRow table = sessions.Tables["Sessions"].Rows[position]; 
    table[0] = "Some Data"; 
    table[1] = "Some Data"; 
    table[2] = "Some Data"; 
    table[3] = 2; 
    table[4] = 3; 
    sessions.Tables["Sessions"].Rows[2].Delete(); 
    sessions.Tables["Sessions"].Rows.InsertAt(table, 2); 

    da.Update(sessions, "Sessions"); 
} 
} 

감사합니다!

+3

"마지막 기본 키"는 무엇을 의미합니까? 마지막 * 삽입 된 * 기본 키를 의미합니까? –

+1

나는이 백업을 표시했다. 나는 질문을 한 사람을 표시하는 것이 매우 불공평하다고 생각합니다! – series0ne

+0

안녕하세요. 답변 해 주셔서 감사합니다. 예, 마지막 기본 키를 의미했습니다. 미안합니다. –

답변

4

마지막으로 삽입 한 기본 키 값을 묻는 것 같습니까? 그럼 SCOPE_IDENTY은 당신의 친구입니다. 자세한 정보는 look hereMSDN을 가져 가십시오.

+0

@Yaroslav에게 감사드립니다. 나는 여전히 문제를 이해하고있다. 내 코드에서 SELECT SCOPE_IDENTITY()를 사용하면 어떻게됩니까? –

+0

코드에서 삽입 직후에이 명령문을 호출해야합니다. 반환되는 값은 삽입 된 마지막 기본 키입니다. 나는 무엇을 성취하려고하는지 알지 못하지만 저장 프로 시저에 삽입 (그리고 필요한 경우 다른 것)을 래핑하고 끝에 SCOPE_IDENTITY() 호출을 포함시키고 자 할 것이다. 그런 식으로 한 번의 전화로 모든 것을 끝낼 수 있습니다. – Yaroslav

+0

SCOPE_IDENTITY() 사용 방법을 아직 이해하지 못했습니다. da.Update (sessions, "Sessions") 라인 다음에 정수 변수를 만들 수 있습니까? int prmKey; prmKey = SCOPE_IDENTITY ("세션"); 다시 한 번 감사드립니다 –

0

테이블에서 마지막 기본 키를 가져오고 모든 삽입에 대해 자동으로 증가 시키려면 최대 값을 물을 수 있습니다. 데이터베이스에서 원하는 경우 범위 ID를 사용할 수 있습니다.

관련 문제