|
■No75259 (WebSurfer さん) に返信
> ■No75256 (MP枯渇ウィザード さん) に返信
>>■No75255 (WebSurfer さん) に返信
> >>■No75254 (MP枯渇ウィザード さん) に返信
> >>
>>>>ArrayListを使っている場合でも、何かしらのプロパティを引っ張ってきてループ処理になるのでしょうか?
> >>
> >>基本的にそうです。ただし「何かしらのプロパティを引っ張って」ではなくて ADO.NET ラ
> >>イブラリを使ったコードを自力で書くことになるはずです。
>>
>>御返答ありがとうございます。
>>やはりそうなりますよね。
>>
>> Dim cn As New OleDb.OleDbConnection
>> 'コマンド用変数
>> Dim SQLcm As OleDb.OleDbCommand = cn.CreateCommand
>> 'Accessファイルの格納変数
>> cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>> "Data Source = " & TargetMDB & ";"
>> 'データベースを開く
>> cn.Open()
>>
>> For i = 0 To ReadJdg.Count - 1
>> Debug.WriteLine(ReadJdg(i))
>> SQLcm.CommandText = "insert into judge values('" & ReadJdg(i) & "')"
>> SQLcm.ExecuteNonQuery()
>> Next
>>とすると、System.InvalidCastException
>>演算子 '&' は 文字列 "insert into judge values('" と 型 'String()' に対して定義されていません。
>>とエラーを吐きます。
>>単にSQL文作るために文字列連結したいだけなのに・・・
>
> まず、ループで回すものが間違ってます。あと、パラメータ化しましょう。
御返答ありがとうございます。
For i = 0 To ReadJdg.Count - 1
Dim temp As String()
temp = ReadJdg.Item(i)
SQLcm.CommandText = "insert into judge values('" & temp(0) & "','" & temp(1) & "','" & temp(2) & "','" _
& temp(3) & "','" & temp(4) & "','" & temp(5) & "'," & temp(6) & "," _
& temp(7) & "," & temp(8) & ",'" & temp(9) & "');"
SQLcm.ExecuteNonQuery()
Next
とすることでうまくいきました。
tenpを作る前はSQL文字列にSystem.String(?)と入ってきて、何の事?ってなりましたが、
ここでいうtempがパラメータ化なのかな、と勝手に納得しています。
ありがとうございました。
|