即可将新数据插入Access表。 该表有4个参数。第一个是自动编号。 这是我的代码:
public void InsertToDB(int stationId, DateTime dateTime, double temperture)
{
connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Database1.accdb";
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connect;
cmd.CommandText = "Insert Into TempDate (StationID,DateTime,Temper)" + "Values(@ID,@dateTime,@temper)";
cmd.Parameters.Add("@ID", OleDbType.Integer).Value = stationId;
cmd.Parameters.Add("@dateTime", OleDbType.Date).Value = dateTime;
cmd.Parameters.Add("@temper", OleDbType.Double).Value = temperture;
connect.Open();
cmd.ExecuteNonQuery(); //At this line exception is generating
connect.Close();
}// insert to db
我收到此错误:
错误码= -2147217900
答案 0 :(得分:1)
您在值之前缺少空格。你可以把它放在一个字符串中,不需要连接它们。此外,正如戈德所说 - DateTime是一个保留字 - 所以把它放在括号中。例如:
cmd.CommandText = "Insert Into TempDate (StationID,[DateTime],Temper) Values (@ID,@dateTime,@temper)";
答案 1 :(得分:0)
DATETIME
显然是一个保留字,因此您需要将其括在方括号中:
cmd.CommandText = "Insert Into TempDate (StationID,[DateTime],Temper)" + ...