我试图在User表中插入一些值,
中有4个属性<td>{{ $project->client->clientName }}</td>
我已经尝试了很多,但我无法找到问题所在。
User-User_Name varchar(20)
User_Password varchar(20)
Entry_Date timestamp
Entry_Time timestamp
答案 0 :(得分:0)
User是transact sql中的保留关键字。将它括在方括号中,如INSERT INTO [User] ....
答案 1 :(得分:0)
USER
是OLE DB提供程序中的reserved keyword。您需要使用方括号,例如[USER]
我知道User
和USER
不一样,但这意味着您的数据库服务器对此选项不区分大小写。
您的Entry_Date
和Entry_Time
列为timestamp
,但您尝试添加DateTime
部分的字符串表示。
最好的方法是将您的Entry_Date
列更改为Date
类型,并将这些列与当前.Date
和.TimeOfDay
属性一起提供当前当地时间。
并且不要使用AddWithValue
方法。 It may generate unexpected results sometimes。使用Add
方法重载来指定参数类型及其大小。
最后,不将密码保存为纯文本。阅读Best way to store password in database
using (var connection = new OleDbConnection(cs))
using (var comm = new connection.CreateCommand())
{
comm.CommandText = @"INSERT INTO [User]([User_Name],[User_Password],[Entry_Date],[Entry_Time])
VALUES (@val1,@val2,@val3,@val4)"
comm.Parameters.Add("@val1", txtUserName.Text);
comm.Parameters.Add("@val2", txtPassword.Text);
comm.Parameters.Add("@val3", DateTime.Now.Date);
comm.Parameters.Add("@val4", DateTime.Now.TimeOfDay);
connection.Open();
comm.ExecuteNonQuery();
}