0

私の会社では、VB.NET アプリケーションで管理する顧客データベースを作成する必要があります。

アプリケーションには、顧客を「検索」するためのいくつかのテキストボックスとボタンがあります。顧客の名前を入力すると、SQL Select ステートメントが機能し、データグリッドに入力されます。

しかし、私は顧客の名前と彼が住んでいる通りを入力できるようにしたいと考えています.これに対する最良の解決策は何ですか? ケースを使用していますか?多くのIfステートメントを使用していますか?

これが私のコードです:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)      Handles Button1.Click
    If True Then
        Dim Conn As New MySqlConnection
        Dim da As MySqlDataAdapter
        Dim ds As New DataSet
        Dim dt As New DataTable
        Dim plz As String = plzTextBox.Text

        Conn.ConnectionString = "server=localhost;uid=root;pwd=;database=wws; "

        Dim sql As String = String.Empty
        If vornameTextBox.Text <> String.Empty Then
            sql = "vorname = " & vornameTextBox.Text.Trim
        End If
        If nachnameTextBox.Text <> String.Empty Then
            AddCondition(sql, "nachname LIKE '%" & nachnameTextBox.Text.Trim & "%'")
        End If
        If emailTextBox.Text <> String.Empty Then
            AddCondition(sql, "email LIKE '%" & emailTextBox.Text.Trim & "%'")
        End If
        If plzTextBox.Text <> String.Empty Then
            AddCondition(sql, "plz LIKE '%" & plzTextBox.Text.Trim & "%'")
        End If
        If sql <> String.Empty Then
            da = New MySqlDataAdapter("SELECT id,vorname,nachname,email,plz,strasse,nummer,stiege,stock,tuer FROM kunden WHERE " + sql, Conn)

            da.Fill(dt)

            DataGridView1.DataSource = dt
        End If



    Else
        DataGridView1.ColumnCount = 1
        DataGridView1.Rows.Add("1")

    End If

End Sub

前もって感謝します!

4

1 に答える 1

0

本当に必要な場合は、多くの if ステートメントを使用しないようにすることもできますが、クライアントに負荷をかけるのではなく、SQL サーバーに負荷を分散させるだけです。

ここの例は、多数の if ステートメントまたは三項演算子を使用して SQL ステートメントを作成する方法を決定し、クライアントに非常に軽い処理負荷をかけるか、各フィールドのテキスト値を挿入するだけでよい例です。パーセンテージ記号で囲み、一重引用符で囲むことで、フィールドが空白の場合に SQL サーバーがそれらのフィールドの内容を評価するようにします。

クエリ プランの最適化により、これらの余分なフィールド検索が削除される可能性がありますが、そうでない可能性もあります。これを携帯電話で入力しているため、テストできるものはありません。

于 2013-05-08T22:35:53.057 に答える