我有以下函數執行查詢,並在失敗時返回true和false。不,我想擴展該方法,以便在每個插入查詢被觸發時,類var insertId
包含最後插入的行的ID。C#+ SQL Server ExecuteScalar()不返回上次插入的編號
問題是insertId
始終爲0,所以executeScalar()
不知何故返回該ID。
任何想法?或者其他的解決方案,以獲得最後的INSERT查詢的ID ....
public int insertId;
public bool executeCommand(string q) {
q += "; SELECT @@IDENTITY AS LastID";
bool retour = true;
SqlConnection myCon = new SqlConnection(Settings.DSN);
SqlCommand cmd = new SqlCommand(q, myCon);
try {
cmd.Connection.Open();
insertId = (int)cmd.ExecuteScalar();
if (insertId > 0) {
MessageBox.Show(insertId.ToString());
}
myCon.Close();
} catch (Exception ex) {
this.error = ex.Message;
retour = false;
}
return retour;
}
我使用的是2005版本...我要試試這個,但是這將會是一些工作,因爲所有的插入查詢都已經寫好了......編輯:謝謝!這工作,結果現在包含插入行的編號 – jhoevenaars
非常感謝。但請記住,Inserted.ID意味着ID列的Inserted.name :) –
Muchas gracias,funciona de maravilla:D – cheloncio