2016-11-01 42 views
0

誰でもこのコードで何が問題なのか教えてください。前もって感謝します。cを使用してMS Accessテーブルにデータを挿入する#

enter image description here

myConnection.ConnectionString = myConnectionString; 
myConnection.Open(); 
OdbcCommand command = myConnection.CreateCommand(); 
command.CommandText = 
    "INSERT INTO Table1(type, from, to, depart, arrival, remain) VALUES(?, ?, ?, ?, ?, ?)"; 

TimeSpan time = new TimeSpan(10, 7, 00); 
DateTime t = new DateTime(2016, 5, 5, 5, 4, 3); 
command.Parameters.AddWithValue("@type", "test"); 
command.Parameters.AddWithValue("@from", "tet"); 
command.Parameters.AddWithValue("@to", "te"); 
command.Parameters.AddWithValue("@depart", t); 
command.Parameters.AddWithValue("@arrival", t); 
command.Parameters.AddWithValue("@remain", 4); 

command.ExecuteNonQuery(); 
+1

。 –

+0

まだ同じエラーが発生しています –

+0

一般的にあなたのコードは大丈夫です。それで何が間違っていますか?例外や予期しない結果が出ますか? –

答えて

2

あなたは、テーブルの列名としてAccess reserved wordstypefromを使用しています。

これは、このようなエラーが発生する理由です。

角カッコで列名をラップし、あなたにコマンドテキストを変更することができます:あなたが名前を付けて位置パラメータを混合している

INSERT INTO Table1([type], [from], to, depart, arrival, remain) VALUES(?, ?, ?, ?, ?, ?) 
+0

ありがとう、ありがとう。あなたは私の問題を解決しました –

+0

@ Wagner'P答えがあなたに役立ったなら、あなたはそれを受け入れられたものとしてマークすることができます。これは、将来そのような問題を経験する人に可能な解決策を示す可能性があります。詳細はhttp://stackoverflow.com/help/someone-answersを参照してください。 –

+0

どうすればいいですか? –

0

これは、Webアプリケーションの挿入機能をコードされています

はコーディング:

string dataPath = Server.MapPath("Your DataPath"); 
    string ConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dataPath + ";Persist Security Info=True";    
    OleDbConnection Con = new OleDbConnection(ConString); 
    OleDbCommand Command = Con.CreateCommand(); 
    Con.Open(); 
    Command.CommandText = "Insert into Table1(type, from, to, depart, arrival, remain) Values (@type, @from, @to, @depart, @arrival, @remain);  
    TimeSpan time = new TimeSpan(10, 7, 00); 
    DateTime t = new DateTime(2016, 5, 5, 5, 4, 3); 
    command.Parameters.AddWithValue("@type", "test"); 
    command.Parameters.AddWithValue("@from", "tet"); 
    command.Parameters.AddWithValue("@to", "te"); 
    command.Parameters.AddWithValue("@depart", t); 
    command.Parameters.AddWithValue("@arrival", t); 
    command.Parameters.AddWithValue("@remain", 4); 
    command.ExecuteNonQuery(); 
    Con.Close(); 
関連する問題