このコードにはいくつかの問題があります。
最も重要なのは、コマンドの 接続 そのため、コマンドはデータベースへの接続方法を知る方法がありません。
usingを利用することも強くお勧めします> 、および パラメータ化 あなたの質問:
最後に、必要がない限り、接続とコマンドを関数の外で宣言しないでください。接続とコマンドは、必要な間だけ維持する必要があります。
したがって、関数は次のようになります:
Public Function add(ByVal area As String, ByVal user As String) As Integer Dim mydao As New Connection Using connection As New SqlConnection(mydao.ConnectionString()) Using command As New SqlCommand() ' 接続を設定しますcommand.Connection =connection ' 必須ではありませんが、良い方法です command.CommandType =CommandType.Text ' パラメーターを使用したクエリの例 command.CommandText ="INSERT into Area (Area, user) VALUES (@area, @user)" ' パラメーターの追加コマンドへ command.Parameters.AddWithValue("@area", area) command.Parameters.AddWithValue("@user", user) connection.Open() Return command.ExecuteNonQuery() End Using ' Dispose Command End Using ' Dispose (したがって、閉じる) ConnectionEnd 関数
プレ>現在、常に 0 を返すことに注意してください。関数から返された値をチェックする必要はなく、上記の例では単純に例外がスローされます。これにより、コードが少しきれいになり (呼び出し元は 0 がエラー状態であることを理解する必要があるため)、例外を処理する必要がある場合は、この関数の呼び出しを
Try-Catch
ブロック