2014-11-03 51 views
-2
void LogData() { 
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connecton1"].ConnectionString); 
    conn.Open(); 
    string insertQuery = "insert into LogData (Name, Action, Time, Object) values (@Name. @Action, @Time, @Object)"; 
    SqlCommand com = new SqlCommand(insertQuery, conn); 
    com.Parameters.AddWithValue("@Name", txtUsername.Text); 
    com.Parameters.AddWithValue("@Action", "Logged in"); 
    com.Parameters.AddWithValue("@Time", DateTime.Now.ToString()); 
    com.Parameters.AddWithValue("@Object", "None"); 
    com.ExecuteNonQuery(); 
    conn.Close(); 
} 

我試圖將數據輸入到數據庫中看到,當人們登錄到我的網站,但我不斷收到一個非常模糊的錯誤說「有附近有語法錯誤@Action'。」有人能指出我做錯了什麼嗎?錯誤與我的INSERT語句

此外,我正確地記錄時間與「DateTime.Now.ToString()」?我需要時間登錄到第二個。例如:11/3/2014 6:19:13

+0

現在IV通過更換固定的問題 ''用','我收到這個錯誤。 「字符串或二進制數據將被截斷。」有人有主意嗎? – sickist 2014-11-03 23:27:03

+0

您試圖存儲比您的LogData表中的某個列更長的值,例如試圖將長度爲40的字符串拖入「varchar(30)」列中。檢查你的輸入。 – 2014-11-03 23:28:32

+0

更改您的時間數據類型爲DateTime數據庫,然後將@Time參數作爲DateTime(即DateTime.Now.ToString()代替DateTime.Now) – 2014-11-03 23:34:28

回答

2

更換

@Name. @Action

@Name, @Action 
+0

謝謝你噓 – sickist 2014-11-03 23:25:17

1

在價值觀你有@Action之前的點,而不是分號。

應該看起來像

Values (@Name, @Action, @Time, ...