2014-01-30 31 views
0

嗨我提交表單訪問,但希望獲取訪問分配自動編號顯示在文本框中提交後。下面是我有,任何建議將是偉大的!C#獲取訪問2010年自動編號

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你可以調用任何你喜歡的參數恕我直言,這只是名稱沒有使用,只有順序。我更喜歡使用'真正'的名字而不是',這使得我更容易看到我要去的地方。 – Fionnuala

回答

3

它看起來像您遇到的問題是因爲你沒有執行第二命令,並使用它

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

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

    label16.Text = cmdNewID.ExecuteScalar(); 
}