2017-02-23 10 views
0

私はテーブルを埋めるためにそれを使用した後にSQLクエリを削除する方法を探しています。
問題は、テキストボックスで変更するまでクエリの値が保持されることです。私は完全に明確なクエリサブが終了する前に方法を探してい使用後にSQLクエリを削除します

Private Sub Button_Click(sender As Object, e As RoutedEventArgs) 
    Try 
     Dim UserEntry As Boolean = False 
     Dim SQL As String = "" 'Das SQL Query wird als String definiert. Das Query dient der Abfrage von SQL Daten 
     If Not tab1 Is Nothing Then 'Wenn tab1 einen Inhalt hat geschieht das Nachfolgende 
      If tab1.Rows.Count > 0 Then 'Wenn tab1 mehr Rows als 0 hat wird 
       SQL = Cobra.Components.Common.DBModul.ConnectionTools.ElliminateNullVallues(tab1.Rows(2).Item("SQLQuery"), True) 
       'Das SQL Query aus der Datenbank genauer der Tabelle "zzMSearchQuerys" aus der Spalte "SQL Query" ausgelesen 
      End If 
     End If 
     If String.IsNullOrWhiteSpace(SQL) Then 'Sollte das Query nicht existieren, so wird ein eigenes Query definiert 
      SQL = "Select * from PAT" 'Dies ist das Ersatz Query sollte das erste nicht wie gewünscht funktionieren oder 
      'Nicht vorhanden sein. 
     End If 
     Dim Oper As String = " Where " 'Der Hilfsoperator wird definiert als "Where" 
     For Each var As Object In Grid2.Children 'Die Children in Grid2 werden als Objekt in der Variable var gespeichert 
      If TypeOf (var) Is myTextbox Then 'Wenn der Typ von var eine Textbox ist geschieht folgendes: 
       Dim txtb1 As myTextbox = CType(var, myTextbox) 'txtb1 wird als MyTextbox definiert mit dem Inhalt von var 
       Dim txtf As String = txtb1.RetWhere 'txtf wird als Textbox definiert mit dem Inhalt der Funktion RetWhere 
       If Not String.IsNullOrWhiteSpace(txtf) Then 
        SQL += Oper + txtf 'Wenn in den Textboxen etwas steht wird das zusammengesetzt mit dem Query dem Oper und dem eingegebenen Text 
        Oper = " AND " 'Der Oper wird zu AND, dies geschieht nun für jede Textbox im Formular 
        UserEntry = True 'Sollte etwas in den Textboxen steht wird UserEntry zu True 
       End If 
       txtf = Nothing 
      End If 
     Next 
     If UserEntry = True Then 'Wenn UserEntry = True ist, werden die Inhalte in "tab"also der Datentabelle eingesetzt 
      Dim tab As New DataTable 
      DataBaseConnection.FillTable(SQL, tab, True) 
      DataGrid1.ItemsSource = tab.DefaultView 
      MsgBox(SQL) 
     End If 


これは私のコードです。
すべての助力に感謝します。 (私の英語力が低いです...)
こんにちは、

+3

"クエリは完全にクリアされる"とはどういう意味ですか? – Whencesoever

+0

解決策が見つかる前に、クエリがそのまま残りました *データベースから名前* '%Pet%'のように*を選択しても、テキストボックスの値をクリアしました。 – xcrookedxedge

答えて

1

私はもっと詳細がいいと思います。

この時点で私の解決策は、この単純な次のようになります。新しいDataTableの
DataBaseConnection.FillTable(SQL、タブ、真)
DataGrid1.ItemsSource = tab.DefaultView
のMsgBox(SQL)として

薄暗いタブ
SQL = ""

+0

ありがとうございます。しかし、私は問題を発見した。私は、SQLの一部である値をクリアすることを忘れてしまいます。 – xcrookedxedge

+0

素晴らしい音色:) – Grizli

関連する問題