2014-11-03 76 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, ...