2014-01-30 2 views
0

안녕하세요, 액세스 할 수있는 양식을 제출하고 있지만 제출 한 후에 자동 입력란에 텍스트가 표시되도록 액세스 번호를 지정하고 싶습니다. 그 밑에는 제가 있었는데, 어떤 제안이라도 좋을 것입니다! 두 번째 명령을 실행하지 있기 때문에 그것은 당신이 겪고있는 문제처럼 보인다C# get access 2010 autonumber

string cmdstr = "Insert into TaskPerformed(TaskType,OtherType,Analyst,DateCompleted)Values(@b,@c,@d,@e)"; 
string query2 = "Select @@IDENTITY"; 

OleDbConnection con1 = new OleDbConnection(constr); 
OleDbCommand com = new OleDbCommand(cmdstr, con1); 
OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1);// 

con1.Open(); 

cmd.CommandText = query2; 
com.ExecuteNonQuery(); 
con1.Close(); 

label16.Text = cmdNewID.ToString(); 
+2

당신은 실행하지 않는 사용하기 전에 연결을 종료하고 cmdNewId - 도움이 될 수도 있습니다. –

+0

또한 매개 변수 자리 표시자는 물음표 ('? ') 여야하며'.Parameter'를 만들거나 값을 할당하지 않는 것 같습니다. –

+0

@GordThompson 매개 변수를 IMHO와 같이 호출 할 수 있습니다. 이름이 사용되지 않고 주문 만 사용됩니다. 나는 진짜 이름을 사용하는 것을 선호하지만, 그것은 내가가는 곳을 더 쉽게 볼 수있게 해줍니다. – Fionnuala

답변

3

입니다 ... 그리고 당신은

using(OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1)) 
{ 
    con1.Open(); 

    cmd.CommandText = query2; 
    com.ExecuteNonQuery(); 

    label16.Text = cmdNewID.ExecuteScalar(); 
}