2014-09-06 71 views
-1

插入錯誤,以便將新數據插入Access表。 該表有4個參數。第一個是自動編號。 這是我的代碼:使用access + asp.net/C#

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

+2

也許只是把該錯誤代碼到谷歌搜索?已經給出瞭如此多的結果如何解決它,例如http://stackoverflow.com/questions/13898551/i-am-getting-an-error-when-i-try-to-update-records-in-my- access-database – walther 2014-09-06 14:51:00

回答

1

您錯過了值之前的空格。你可以把它放在一個字符串中,不需要連接它們。另外,正如戈德所說 - DateTime是一個保留字 - 所以把它放在括號內。例如:

cmd.CommandText = "Insert Into TempDate (StationID,[DateTime],Temper) Values (@ID,@dateTime,@temper)"; 
+0

謝謝boath!它的工作! – 2014-09-06 16:12:40

0

DATETIME顯然是一個保留字,所以你需要把它們放在方括號:

cmd.CommandText = "Insert Into TempDate (StationID,[DateTime],Temper)" + ...