Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
複数条件のプログラムを作りたい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=15515#CommentId37654
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
名無し
 (社会人)
投稿日時
2014/2/5 15:40:47
Private Sub btnGo_Click(sender As System.Object, e As System.EventArgs) Handles btnGo.Click
Dim wOK As Boolean
Dim cnstr As String = "Data Source=DENSAN09;Initial Catalog=データベース;Integrated Security=True"
Dim sql As String
sql = "SELECT * "
sql += "FROM 生産者"
Dim dt As New DataTable
If TextBox1.Text.Length > 0 Then
wOK = True
If あいまい検索1A.Checked Then
sql += " WHERE (生産者番号 Like '%" & TextBox1.Text.Trim & "%')"
Else
sql += " WHERE (生産者番号 Like '" & TextBox1.Text.Trim & "%')"
End If
End If
If TextBox2.Text.Length > 0 Then
If wOK = True Then
sql += " OR "
Else
sql += " WHERE "
End If
sql += " (生産者名 Like '"
If あいまい検索2B.Checked Then
sql += "%"
End If
sql += TextBox2.Text.Trim & "%')"
wOK = True
End If
If TextBox3.Text.Length > 0 Then
If wOK = True Then
sql += " OR "
Else
sql += " WHERE "
End If
sql += " (Rank Like '"
If あいまい検索3B.Checked Then
sql += "%"
End If
sql += TextBox3.Text.Trim & "%')"
wOK = True
End If
Dim da As New SqlDataAdapter(sql, cnstr)
Try
da.Fill(dt)
DataGridView1.DataSource = dt 'DataGridview1にdtのデータを表示する
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
End Class
※本来、あいまい検索は半角や大文字などを区別しない検索方法ですが、ここではあいまい検索にチェックが付くと入力された単語さえあれば、単語の位置とか関係なくDataGridviewに表示させる方法になっています。
※RadiobtnBにはあいまい検索、Aには先頭検索となっています。
質問した時と比べて大分検索プログラムの形になりつつありますが、複数の条件を記入したとしても一番最初に来た検索条件の結果のみDatagridviewに表示されています。
仕様としては複数の条件を全てあったデータだけを取りたいのですがどうすれば良いのでしょうか?
anさん
内部的な話はプログラムを作成者目線、外交的な話はプログラムの利用者目線の意味合いとして宜しいでしょうか?
るきおさんのコードについてですが、
Dim cnstr As String = "Data Source=DENSAN09;Initial Catalog=データベース;Integrated Security=True"
Dim SqlBody As String
SqlBody = "SELECT * FROM 生産者情報"
Dim sqlWhere As New System.Text.StringBuilder
Dim sql As String
If TextBox1.Text = 0 Then
sql = SqlBody
Else
sql = SqlBody & " WHERE " & sqlWhere.ToString()
End If
まで作れましたが、if xxx から何を打ち込んだら良いのか分からずいます。
今は、データ検索の高速化とかは考えずに検索プログラムの作成を目標にしています