2013-05-10 61 views
0

我正在使用webmatrix設計一個簡單的表單。我的表單也使用jquery ui很多。在我的一個模式窗口中插入一條新記錄。我在Mysql中的表具有自動增量的主鍵。 發佈的新紀錄後,我用這個代碼下面是否成功:插入新記錄後如何獲得主鍵

$.getJSON('shared/Partials/NewUser/' + $("#add-opno").val(), function (data) { 
         var newrecip = data; 
         console.log(newrecip.ID); 

        }); 

當我調試我的劇本注意到控制檯值是不確定的。 以下是NewUser腳本。

@{ 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
if(UrlData[0].IsInt()){ 
    var db = Database.Open("sb_cpd"); 
    var sql = "SELECT ID FROM cpd_recipients WHERE OpNo ='@0'"; 
    var recipient = db.QuerySingle(sql,UrlData[0]); 
    Json.Write(recipient, Response.Output); 
} 
} 
+0

那麼'recepient'是'null'? – 2013-05-10 07:19:46

+0

它不爲空,但控制檯日誌說:無法讀取null的屬性「ID」。該ID是我的主鍵。不是null,因爲當我檢入數據庫時​​,插入值。我知道我可以使用像ExecuteScalar和Select Scope這樣的東西。我如何使用它? – 2013-05-10 07:47:13

+0

我有點困惑,你說'下面是NewUser腳本',但我看到只有一個選擇(而不是插入)?我錯過了什麼? – 2013-05-10 07:50:01

回答

1

確定,如果我理解你正確,獲得最後插入的ID在MySQL數據庫(SCOPE_IDENTITY()的SQL Server中的等價的方式是這樣的:

INSERT INTO Table(Column1, Column2) 
VALUES (@Column1, @Column1); 
SELECT LAST_INSERT_ID(); 

當然你的表。需要有一個AUTO_INCREMENT列

否則你可以在ID列這樣的最高值:

SELECT MAX(ID) FROM cpd_recipients; 

我希望這有助於。

+0

你能告訴我如何使用SELECT LAST_INSERT_ID()執行(查詢,參數)。我測試了SELECT LAST_INSERT_ID()在我的表上,它似乎工作,但不知道如何在我的代碼中使用它。 – 2013-05-10 13:24:03