• R/O
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

練習用です。いろんなものがごちゃまぜです。


コミットメタ情報

リビジョン382 (tree)
日時2017-10-30 17:35:09
作者bellyoshi

ログメッセージ

変更サマリ

差分

--- vbdb/accdb1/accdb1/DBUtil.vb (nonexistent)
+++ vbdb/accdb1/accdb1/DBUtil.vb (revision 382)
@@ -0,0 +1,22 @@
1+Public Class DBUtil
2+ ''' <summary>
3+ ''' 条件がすでにあれば文字列ANDを追加する。
4+ ''' </summary>
5+ ''' <param name="fs">SQL条件 WHERE句</param>
6+ Public Shared Sub AppendAnd(fs As System.Text.StringBuilder)
7+ If fs.Length <> 0 Then
8+ fs.Append(" AND ")
9+ End If
10+ End Sub
11+
12+ Public Shared Function CreateSql(tableName As String, fs As Text.StringBuilder) As String
13+ Dim sqlBuilder As New Text.StringBuilder
14+ sqlBuilder.Append("SELECT * FROM ")
15+ sqlBuilder.Append(tableName)
16+ If fs.Length <> 0 Then
17+ sqlBuilder.Append(" WHERE ")
18+ sqlBuilder.Append(fs)
19+ End If
20+ Return sqlBuilder.ToString
21+ End Function
22+End Class
--- vbdb/accdb1/accdb1/SQLBuilder.vb (nonexistent)
+++ vbdb/accdb1/accdb1/SQLBuilder.vb (revision 382)
@@ -0,0 +1,25 @@
1+Imports System.Text
2+
3+Public Class SQLBuilder
4+
5+ Private fs As New Text.StringBuilder
6+ Private tableName As String
7+ Private isfirstCondtion As Boolean = True
8+
9+ Public Sub New(ByVal tableName As String)
10+ Me.tableName = tableName
11+ End Sub
12+
13+ Public Sub Append(ByVal condition As String)
14+ If Not isfirstCondtion Then
15+ DBUtil.AppendAnd(fs)
16+ End If
17+ fs.Append(condition)
18+ isfirstCondtion = False
19+ End Sub
20+
21+ Public Function CreateSql()
22+ Return DBUtil.CreateSql("vw_projectlist_test", fs)
23+ End Function
24+
25+End Class
--- vbdb/accdb1/accdb1/frmProjectList.vb (revision 381)
+++ vbdb/accdb1/accdb1/frmProjectList.vb (revision 382)
@@ -25,27 +25,24 @@
2525 End Sub
2626
2727 Private Sub LoadDatabese()
28- Dim fs As New Text.StringBuilder
28+ Dim sb As New SQLBuilder("vw_projectlist_test")
2929
3030 If Trim(txtProjectName.Text) = String.Empty Then
31- fs.Append($"project_name like '%{txtProjectName.Text}%'")
31+ sb.Append($"project_name like '%{txtProjectName.Text}%'")
3232 End If
3333 If 0 < cmbManager.SelectedIndex Then
34- AppendAnd(fs)
3534 Dim staffcode = Strings.Left(cmbManager.Text, 6)
36- fs.Append($"staff_code = '{staffcode}'")
35+ sb.Append($"staff_code = '{staffcode}'")
3736 End If
3837 If 0 < cmbCustomer.SelectedIndex Then
39- AppendAnd(fs)
4038 Dim customercode = Strings.Left(cmbCustomer.Text, 7)
41- fs.Append($"customer_code = '{customercode}'")
39+ sb.Append($"customer_code = '{customercode}'")
4240 End If
4341 If chkComplete.Checked Then
44- AppendAnd(fs)
45- fs.Append("complete_flag = true")
42+ sb.Append("complete_flag = true")
4643 End If
4744
48- Dim sql = CreateSql("vw_projectlist_test", fs)
45+ Dim sql = sb.CreateSql()
4946
5047 Dim da = New Data.OleDb.OleDbDataAdapter(sql, My.Settings.projectManageConnectionString)
5148 Me.ProjectManageDataSet.vw_projectlist_test.Clear()
@@ -52,26 +49,7 @@
5249 da.Fill(Me.ProjectManageDataSet.vw_projectlist_test)
5350 End Sub
5451
55- ''' <summary>
56- ''' 条件がすでにあれば文字列ANDを追加する。
57- ''' </summary>
58- ''' <param name="fs">SQL条件 WHERE句</param>
59- Private Sub AppendAnd(fs As System.Text.StringBuilder)
60- If fs.Length <> 0 Then
61- fs.Append(" AND ")
62- End If
63- End Sub
6452
65- Private Function CreateSql(tableName As String, fs As Text.StringBuilder) As String
66- Dim sqlBuilder As New Text.StringBuilder
67- sqlBuilder.Append("SELECT * FROM ")
68- sqlBuilder.Append(tableName)
69- If fs.Length <> 0 Then
70- sqlBuilder.Append(" WHERE ")
71- sqlBuilder.Append(fs)
72- End If
73- Return sqlBuilder.ToString
74- End Function
7553
7654 Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
7755 Me.Close()