3

Visual Basic アプリケーションから SQL クエリに変数を渡してデータベースを更新し、使用している変数に応じてデータを取得する方法について助けが必要です。

これを行う正しい方法は何ですか:

私のデータベースには、appName、appLink、clickCount が保存されています。関連付けられたアプリをクリックするたびに、リンクが起動され、clickCount を 1 つ増やしたいと思います。最も頻繁に使用されるリンクを追跡します。

私が考えていた、

UPDATE myTable
SET clickCount = clickCount + 1
WHERE appName = (variable I am passing | link user clicked on)

しかし、VB から SQL ステートメントに変数を取得するにはどうすればよいでしょうか。VB アプリで多数の機能を実行する予定であり、SQL サーバーとの間でデータをオープンにやり取りする必要があります。これを達成するための最良の方法は何ですか?

補足説明... VB の関数ではなく、SQL のストアド プロシージャまたは関数を使用する必要があるのはどのような場合ですか?

最後に、私が実際に知っている言語は Python だけなので、このプロジェクトを完了するために SQL と VB の両方を学んでいます。Python では、SQLite を使用して、コードはすべて同じ場所にあります。上記のすべてを実行する 1 つの関数を作成できます。VBでそれを行うことはできますか?

4

2 に答える 2

4

あなたの質問には実際のコードが含まれていないため、疑似コードのみを提供します。まず、アプリケーション名とリンク名を受け取る UpdateClickCount というメソッドを定義します。

 Public Sub UpdateClickCount(ByVal appName as String, ByVal linkName as String)
     Using sqlCon = new SqlConnection(connectionString)
          sqlCon.Open()
          Dim sqlText = "UPDATE myTable SET clickCount = clickCount + 1 " & _
                        "WHERE appName = @name AND link = @link"
          Dim cmd = new SqlCommand(sqlText, sqlCon)
          cmd.Parameters.AddWithValue("@name", appName)
          cmd.Parameters.AddWithValue("@link", linkName)
          cmd.ExecuteNonQuery()
     End Using
 End Sub

メソッド内で最初に行うことは、データベースに到達するためのすべての情報を含む接続文字列を使用してSqlConnectionを開くことです。
次に、データベースを更新するためのコマンド テキストが定義され、文字列に割り当てられます。
このコマンドには、2 つのパラメーター プレースホルダー (@name と @link) が含まれています。これで、文字列と接続を使用してSqlCommand
を 定義できます。 コマンドを実行する前に最後に行うことは、2 つのパラメーターとその値を定義することです。

ExecuteNonQueryはすべてをデータベースに送信し、データが更新されます。
通常、これはデータベースを更新するすべてのコマンドで実行する方法です。

于 2013-04-20T14:12:51.523 に答える
0

sqlcommand オブジェクトを使用して SQL ステートメントを作成し、パラメーター プレースホルダーを使用して変数を割り当てることができます。

于 2013-04-20T14:11:07.327 に答える