1

Access データベースを作成し、いくつかの値を持つテーブルを追加しようとしています。何らかの理由で、以下のコードは、整数を挿入パラメーターに追加するときに例外をスローします。誰かが間違っている可能性があるものを見つけることができますか?

var Name = DateTime.Now.ToString("H_mm_ss");

ADOX.CatalogClass cat = new ADOX.CatalogClass();

cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" +
        "Data Source="+ "C:\\test\\" + Name + ".mdb;" +
        "Jet OLEDB:Engine Type=5");

ADODB.Connection con = cat.ActiveConnection as ADODB.Connection;

ADOX.Table t = new Table();
t.Name = "Table1";
t.Columns.Append("Field1", ADOX.DataTypeEnum.adInteger);
t.Columns.Append("Field2", ADOX.DataTypeEnum.adVarWChar, 50);

cat.Tables.Append(t);

ADODB.Command cmdInsert = new ADODB.Command();
cmdInsert.ActiveConnection = con;

cmdInsert.CommandText = "INSERT INTO Table1(Field1, Field2)" + " VALUES (?, ?)";

cmdInsert.CommandType = ADODB.CommandTypeEnum.adCmdText;

ADODB.Parameter param1 = cmdInsert.CreateParameter(
    "Field1",                                   // Parameter name 
    ADODB.DataTypeEnum.adInteger,               // Parameter type
    ADODB.ParameterDirectionEnum.adParamInput,  // Parameter direction 
    -1,                                         // Max size of value in bytes 
    69);                                        // Parameter value 

 // throws InvalidCastException
cmdInsert.Parameters.Append(param1); 
4

1 に答える 1

0

ADODB バージョン 2.7 に変更すると、問題が解決することがわかりました。このスレッドを作成したとき、私はバージョン 2.8 を使用していました。

于 2013-05-28T14:54:59.310 に答える