我正在使用 OleDBConnectivity 系統來連接和使用 Microsoft Access 資料庫。
我正在向資料庫中名為“PayInfo”的表中添加一條記錄,并且主鍵自動設定為下一個可用整數。如何檢查分配給它的主鍵的值是什么?我知道這可能是一個糟糕的主意,但我唯一能想到的就是使用輸入的值重新讀取資料庫。這個問題雖然不太可能,但它可能有 2 條相同的記錄存盤在資料庫中,它們唯一的區別是主鍵,我需要能夠讀取特定的記錄。
我當前用于將記錄添加到資料庫的子程式如下:
OleDbCommand command = connection.CreateCommand();
connection.Open();
// The SQL statement:
command.CommandText = "INSERT INTO PayInfo ([UserID], [FullName], [CardType], [CardNo], [CVV], [ExpDate], [Address])"
"VALUES ('" Global.UserID.ToString() "','" PayInfo[6] "','" PayInfo[0] "','" PayInfo[1] "','" PayInfo[2] "','" exp "','" adress "')";
command.Connection = connection;
command.ExecuteNonQuery(); //executes the SQL command.
connection.Close();
return true; //Successful transaction
uj5u.com熱心網友回復:
執行插入查詢后,您需要執行另一個查詢來獲取生成的主鍵:
command.Parameters.Clear();
command.CommandText = "SELECT @@IDENTITY";
int primaryKey = Convert.ToInt32(Command.ExecuteScalar());
有關更多詳細資訊,請參閱Microsoft:檢索身份或自動編號值:
Jet 資料庫引擎不支持批量執行多個陳述句或使用輸出引數,因此無法使用這些技術中的任何一種來回傳分配給插入行的新自動編號值。但是,您可以將代碼添加到執行單獨的 SELECT @@IDENTITY 陳述句以檢索新的自動編號值的 RowUpdated 事件處理程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/523906.html
標籤:C#sql数据库毫秒访问
