Access 2003中無法檢索的Microsoft Access自動編號值
VS 2010 C#
正如主題標題說我有這個問題。它將創建一個新的字段來打印日期和時間,以便在當前ID中標記日期和時間。我也試過UPDATE命令參數沒有成功。
我有一個不同的方法(btnloggedIn),它保存用戶名,登錄日期和登錄時間。這是應該的。我創建了另一種方法(btnLoggedOut),我遇到了問題。目的是保存已註銷日期和誰註銷用戶,在訪問中就列在登錄時在其中創建的自動識別已註銷時間
表名稱 - LoginTable
>
FieldName Data Type
UserName Text
Password Text
表的名字 - LoginLogTable
FieldName Data Type
ID AutoNumber
UserName Text
LoggedInDate Date/Time
LoggedInTime Date/Time
LoggedOutDate Date/Time
LoggedOutTime Date/Time
ID是PK。它是一對多的關係。登錄的用戶可以有許多關於日期和時間的詳細信息
如果任何人都可以在這裏幫助我,我將不勝感激。
private void btnLogOut_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = " UPDATE [LoginLogTable] SET [LoggedOutDate] = ?, [LoggedOutTime] = ?
WHERE ID = ?";
cmd.Parameters.AddWithValue("@LoggedOutDate", DateTime.Now.ToShortDateString());
cmd.Parameters.AddWithValue("@LoggedOutTime", DateTime.Now.ToString("HH:mm"));
cmd.Connection = myCon;
myCon.Open();
cmd.ExecuteNonQuery();
Close();
}
這對於btnLogin方法的部分代碼...
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO LoginLogTable (UserName, LoggedInDate, LoggedInTime) VALUES (@UserName, @LoggedInDate, @LoggedInTime)";
cmd.Parameters.AddWithValue("@UserName", txtUserName.Text);
cmd.Parameters.AddWithValue("@LoggedInDate", DateTime.Now.ToShortDateString());
cmd.Parameters.AddWithValue("@LoggedInTime", DateTime.Now.ToString("HH:mm"));
cmd.Connection = myCon;
myCon.Open();
cmd.ExecuteNonQuery();
myCon.Close();
只是爲了澄清:這是一個ASP.NET(網絡)應用程序? – 2013-03-25 18:55:01
@GordThompson - 沒有它的Windows窗體應用程序,爲什麼? – bucketblast 2013-03-25 18:59:32
您必須首先構造*並執行* INSERT,然後運行「SELECT @@ IDENTITY」查詢來檢索INSERT剛剛創建的ID值。他們是單獨的操作。現在,您的代碼(顯然)試圖將這兩種操作結合起來,這是行不通的。另外,請記住,SELECT @@ IDENTITY將返回單個(標量)值,而不是行集,因此可能會影響調用它時調用的方法。 – 2013-03-25 22:32:06