接続は閉じられませんでした。接続の現在の状態は開いています

Try
    If functionmode = "ADD" Then
        SQLStr = "INSERT INTO boatmast VALUES ('" & gBoatType & "','" & TxtBoatCode.Text & "','" & TxtBoatName.Text & "','" & Format(txtBP.Text, "##0.#0") & "','" & Format(txtBPM.Text, "##0.#0") & "','" & Format(txtLDA.Text, "##0.#0") & "','" & , 'bpk', '" & Today & "', '" & updtime & "', 'bpk', '" & Today & "', '" & updtime & "')"
    End If
    conn.Open()
    SQLCmd.Connection = conn
    SQLCmd.CommandText = SQLStr
    SQLCmd.ExecuteNonQuery()
    conn.Close()


Catch ex As OdbcException
    MsgBox(ex.ToString)
Finally
    conn.Close()
End Try
1
このコードはSQLインジェクション攻撃に対して脆弱です。
追加された 著者 Joel Coehoorn,
SQLにtextbox.textの値を挿入すると、本当に悪い考えです。
追加された 著者 Keith Beard,
ストアドプロシージャまたはパラメータ化クエリを使用します。
追加された 著者 Keith Beard,
どのように編集すればいいですか?
追加された 著者 Peterson Agas,
完了しました。ありがとう
追加された 著者 Peterson Agas,

1 答え

問題はconn.Close()を2回呼び出すことです。最後のブロックにクローズ接続を保持します。

Try

    If functionmode = "ADD" Then
                                        //Supposed this is you columnNAmes                                                     //Set parameters                 
        SQLStr = "INSERT INTO boatmast (gBoatType,BoatCode,BoatName,BP, BPM,LDA,bpk,Today,updtime,bpk2,Today2,updtime2) VALUES (@gBoatType,@BoatCode,@BoatName,@BP, @BPM,@LDA,@bpk,@Today,@updtime,@bpk2,@Today2,@updtime2)"

      SQLCmd.Parameters.AddWithValue("@gBoatType",gBoatType)
      //DO OTHER STUFF TIL @updtime2            

    conn.Open()
    SQLCmd.Connection = conn
    SQLCmd.CommandText = SQLStr
    SQLCmd.ExecuteNonQuery() 

  End If
Catch ex As OdbcException
    MsgBox(ex.ToString)
Finally
     If conn.State = ConnectionState.Open Then conn.Close()
End Try

よろしく

4
追加された
確かに、試しブロックで削除することを意味しますか? SQLCmd.ExecuteNonQuery()が失敗すると、接続が切断されることはありません。
追加された 著者 Hand-E-Food,
それで...最後にブロックに置いて..先生。私は自分の投稿を編集しました。
追加された 著者 BizApps,
多分、あなたが投稿したもの以外の他のコードにもconn.Close()が重複しています。完全なコードを投稿できますか? @Peterson Agas
追加された 著者 BizApps,
答えとしてチェックすることを忘れたり、投票してください。ありがとう
追加された 著者 BizApps,
何も変わらない
追加された 著者 Peterson Agas,
完了しました。ありがとう
追加された 著者 Peterson Agas,