左旧约,右新约(未检查bug)

这篇文章介绍了如何使用VB.NET编程语言,通过OleDb连接数据库,实现圣经章节内容的动态查询和在富文本控件中高亮显示,包括章节号、节号和对应经文。
Imports System.Data.OleDb

Public Class Form1
    Dim jiuyue As String() = {"创", "出", "利", "民", "申", "书", "士", "得", "撒上", "撒下", "王上", "王下", "代上", "代下", "拉", "尼", "斯", "伯", "诗", "箴", "传", "歌", "赛", "耶", "哀", "结", "但", "何", "珥", "摩", "俄", "拿", "弥", "鸿", "哈", "番", "该", "亚", "玛"}
    Dim xinyue As String() = {"太", "可", "路", "约", "徒", "罗", "林前", "林后", "加", "弗", "腓", "西", "帖前", "帖后", "提前", "提后", "多", "门", "来", "雅", "彼前", "彼后", "约壹", "约贰", "约叁", "犹", "启"}
    '目录
    Dim mulu As String() = {"律法书", "历史书", "诗歌·智慧书", "先知书", "四福音", "教会历史", "书信", "对约翰的启示", "可供各大教会免费使用。"}
    '小目录
    Dim lfs As String() = {"创世记", "出埃及记", "利未记", "民数记", "申命记"}
    Dim lss As String() = {"约书亚记", "士师记", "路得记", "撒母耳记上", "撒母耳记下", "列王纪上", "列王纪下", "历代志上", "历代志下", "以斯拉记", "尼希米记", "以斯帖记"}
    Dim sgzhs As String() = {"约伯记", "诗篇", "箴言", "传道书", "雅歌"}
    Dim xzs As String() = {"以赛亚书", "耶利米书", "耶利米哀歌", "以西结书", "但以理书", "何西阿书", "约珥书", "阿摩司书", "俄巴底亚书", "约拿书", "弥迦书", "那鸿书", "哈巴谷书", "西番雅书", "哈该书", "撒迦利亚书", "玛拉基书"}
    Dim sfy As String() = {"马太福音", "马可福音", "路加福音", "约翰福音"}
    Dim jhls As String() = {"使徒行传"}
    Dim sx As String() = {"罗马书", "哥林多前书", "哥林多后书", "加拉太书", "以弗所书", "腓立比书", "歌罗西书", "帖撒罗尼迦前书", "帖撒罗尼迦后书", "提摩太前书", "提摩太后书", "提多书", "腓利门书", "希伯来书", "雅各书", "彼得前书", "彼得后书", "约翰一书", "约翰二书", "约翰三书", "犹大书"}
    Dim dyhdqs As String() = {"启示录"}
    Dim bqxx As String() = {}
    '整本圣经目录
    Dim hb As String()() = {lfs, lss, sgzhs, xzs, sfy, jhls, sx, dyhdqs, bqxx}
    '富文本控件
    Dim rtb As RichTextBox = New RichTextBox()
    '鼠标右键菜单
    Dim cms As ContextMenuStrip = New ContextMenuStrip()
    Dim ms_w As MenuStrip = New MenuStrip()
    Dim ms_e As MenuStrip = New MenuStrip()

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        '菜单字体大小
        Me.cms.Font = New Font("黑体", 18, FontStyle.Bold)
        '富文本控件样式
        Me.rtb.Dock = DockStyle.Fill
        Me.rtb.Font = New Font("黑体", 70, FontStyle.Bold)
        Me.rtb.BackColor = Color.Black
        Me.rtb.ReadOnly = True
        '循环遍历菜单
        ms_w.Dock = DockStyle.Left
        ms_e.Dock = DockStyle.Right
        For i = 0 To jiuyue.Length - 1
            Dim tsb As ToolStripButton = New ToolStripButton(jiuyue(i))
            ms_w.Items.Add(tsb)
            If i < 5 Then
                tsb.BackColor = Color.FromArgb(255, 102, 102)
            ElseIf i < 17 Then
                tsb.BackColor = Color.FromArgb(153, 204, 102)
            ElseIf i < 22 Then
                tsb.BackColor = Color.FromArgb(0, 153, 204)
            Else
                tsb.BackColor = Color.FromArgb(255, 255, 102)
            End If
            AddHandler tsb.Click, AddressOf tsmiClick '声明一个事件委托
        Next i
        For i = 0 To xinyue.Length - 1
            Dim tsb As ToolStripButton = New ToolStripButton(xinyue(i))
            ms_e.Items.Add(tsb)
            If i < 4 Then
                tsb.BackColor = Color.FromArgb(255, 102, 102)
            ElseIf i < 5 Then
                tsb.BackColor = Color.FromArgb(153, 204, 102)
            ElseIf i < 26 Then
                tsb.BackColor = Color.FromArgb(0, 153, 204)
            Else
                tsb.BackColor = Color.FromArgb(255, 255, 102)
            End If
            AddHandler tsb.Click, AddressOf tsmiClick '声明一个事件委托
        Next i
        Me.Size = New Size(1000, 700) '窗口1000*700
        Me.WindowState = FormWindowState.Maximized '窗口最大化

        Me.Controls.Add(rtb) '把控件加到form里面
        Me.Controls.Add(ms_w)
        Me.Controls.Add(ms_e)
    End Sub

    Private Sub tsmiClick(sender As Object, e As EventArgs)
        Dim s As String = CType(sender, ToolStripButton).Text '强制转换sender变成菜单项
        Me.selecthb(s)
    End Sub

    Private Sub selecthb(ShortName As String)
        Dim ChapterSN As Integer = 0
        Dim VerseSN As Integer = 0

        While ChapterSN = 0 '条件无限循环
            Dim s As String = InputBox("输入章数", "输入章数", "1") '定义输入框
            If s = Nothing Or s.Equals("") Or s.Length > 3 Then '判断如果输入的不是空或者不是空字符串或者长度大于三才可以跳出循环
                Continue While
            End If
            ChapterSN = Val(s) '章数转换为整数
        End While

        While VerseSN = 0
            Dim s As String = InputBox("输入节数", "输入节数", "1")
            If s = Nothing Or s.Equals("") Or s.Length > 3 Then
                Continue While
            End If
            VerseSN = Val(s)
        End While

        Me.rtb.Hide()
        Me.rtb.Clear()
        Me.rtb.SelectionColor = Color.OrangeRed
        Me.rtb.AppendText("《" & ShortName & "》" & "第" & ChapterSN & "章" & vbVerticalTab)

        Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bibleNosound.dat;Persist Security Info=True;Jet OLEDB:Database Password=pasitoldata")
            Using cmd As OleDbCommand = New OleDbCommand("select * from bible, bibleid where bible.VolumeSN = bibleid.SN and ShortName = @ShortName and ChapterSN = @ChapterSN and VerseSN >= @VerseSN", con)
                cmd.Parameters.AddWithValue("ShortName", ShortName)
                cmd.Parameters.AddWithValue("ChapterSN", ChapterSN)
                cmd.Parameters.AddWithValue("VerseSN", VerseSN)
                con.Open()
                Using sdr As OleDbDataReader = cmd.ExecuteReader()
                    Dim i As Integer = 0
                    While sdr.Read()
                        Me.rtb.SelectionColor = Color.White
                        Me.rtb.AppendText("(" & sdr("VerseSN") & ")" & vbTab)
                        If i Mod 3 = 0 Then '隔行变色
                            Me.rtb.SelectionColor = Color.Cyan
                        ElseIf i Mod 3 = 1 Then
                            Me.rtb.SelectionColor = Color.Magenta
                        Else
                            Me.rtb.SelectionColor = Color.Yellow
                        End If
                        Me.rtb.AppendText(sdr("strjw") & vbVerticalTab) '每次循环追加新内容
                        i += 1
                    End While
                End Using
            End Using
        End Using
        Me.rtb.Select(0, 0)
        Me.rtb.Focus()
        Me.rtb.Show()
    End Sub

 

End Class

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值