frmAddRSS.vb
上传用户:szledliu
上传日期:2021-01-29
资源大小:13805k
文件大小:5k
源码类别:

C#编程

开发平台:

C#

  1. 'This is just a simple form to add new feeds or groups.
  2. Imports System.Data.OleDb
  3. Public Class frmAddRSS
  4.     Public GroupID As Integer
  5.     Public RSSForm As frmRSS
  6.     Enum Modes
  7.         AddFeed
  8.         AddGroup
  9.     End Enum
  10.     Private _mode As Modes
  11.     Public Property Mode() As Modes
  12.         Get
  13.             Return _mode
  14.         End Get
  15.         Set(ByVal value As Modes)
  16.             _mode = value
  17.         End Set
  18.     End Property
  19.     Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
  20.         Me.Close()
  21.     End Sub
  22.     Private Sub LoadFromDB()
  23.         Dim strSQL As String = "SELECT * FROM RSSGROUPS"
  24.         Dim oConn As New OleDbConnection(AppManager.ConnString)
  25.         Dim oDa As New OleDbDataAdapter(strSQL, oConn)
  26.         Dim dt As New DataTable
  27.         Dim dr As DataRow
  28.         Dim li As ListItem
  29.         Try
  30.             oDa.Fill(dt)
  31.             For Each dr In dt.Rows
  32.                 li = New ListItem
  33.                 If dr.Item("ParentID") = 0 Then
  34.                     li.Text = dr.Item("GroupTitle")
  35.                     li.Value = dr.Item("ID")
  36.                     cboGroups.Items.Add(li)
  37.                     GetChildren(li.Value, dt)
  38.                 End If
  39.             Next
  40.         Catch ex As Exception
  41.             Dim ofrm As New frmError
  42.             ofrm.err = ex
  43.             ofrm.ShowDialog()
  44.         End Try
  45.     End Sub
  46.     Private Sub GetChildren(ByVal itmID As Integer, ByVal dt As DataTable)
  47.         Dim dv As New DataView(dt)
  48.         dv.RowFilter = "parentID=" & Integer.Parse(itmID)
  49.         Dim row As DataRowView
  50.         Dim itm As ListItem
  51.         Try
  52.             For Each row In dv
  53.                 ' Perform the node addition
  54.                 itm = New ListItem
  55.                 itm.Text = row("GroupTitle")
  56.                 itm.Value = row("ID")
  57.                 cboGroups.Items.Add(itm)
  58.             Next
  59.         Catch ex As Exception
  60.             Dim ofrm As New frmError
  61.             ofrm.err = ex
  62.             If Not IsNothing(Me.Parent) Then
  63.                 ofrm.ShowDialog(Me.Parent)
  64.             Else
  65.                 ofrm.ShowDialog(Me)
  66.             End If
  67.         End Try
  68.     End Sub
  69.     Private Sub frmAddRSS_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  70.         If Me.Mode = Modes.AddGroup Then
  71.             txtURL.Enabled = False
  72.             Dim li As New ListItem
  73.             li.Text = "Top level"
  74.             li.Value = 0
  75.             cboGroups.Items.Add(li)
  76.         End If
  77.         LoadFromDB()
  78.         cboGroups.SelectedIndex = 0
  79.     End Sub
  80.     Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
  81.         Select Case Me.Mode
  82.             Case Modes.AddFeed
  83.                 If txtTitle.Text = "" Then
  84.                     MsgBox("Please enter a Title.")
  85.                     Exit Sub
  86.                 End If
  87.                 If txtURL.Text = "" Then
  88.                     MsgBox("Please enter a URL.")
  89.                     Exit Sub
  90.                 End If
  91.                 If IsNothing(cboGroups.SelectedItem) Then
  92.                     MsgBox("Please select a group.")
  93.                     Exit Sub
  94.                 End If
  95.                 AddFeed()
  96.             Case Modes.AddGroup
  97.                 If IsNothing(cboGroups.SelectedItem) Then
  98.                     MsgBox("Please select a group.")
  99.                     Exit Sub
  100.                 End If
  101.                 If txtTitle.Text = "" Then
  102.                     MsgBox("Please enter a Title.")
  103.                     Exit Sub
  104.                 End If
  105.                 AddGroup()
  106.         End Select
  107.     End Sub
  108.     Private Sub AddFeed()
  109.         Dim li As ListItem = cboGroups.SelectedItem
  110.         Dim strSQL As String = "INSERT INTO RSSChannels (GroupID, ChannelTitle, Link) VALUES ('" & _
  111.         CInt(li.Value) & "', '" & txtTitle.Text & "', '" & txtURL.Text & "')"
  112.         Dim oConn As New OleDbConnection(AppManager.ConnString)
  113.         Dim oCmd As New OleDbCommand(strSQL, oConn)
  114.         Try
  115.             oConn.Open()
  116.             oCmd.ExecuteNonQuery()
  117.             oConn.Close()
  118.             If Not IsNothing(Me.RSSForm) Then
  119.                 Me.RSSForm.LoadFromDB()
  120.             End If
  121.             Me.Close()
  122.         Catch ex As Exception
  123.             Dim ofrm As New frmError
  124.             ofrm.err = ex
  125.             ofrm.ShowDialog(Me)
  126.         Finally
  127.             oConn.Dispose()
  128.             oCmd.Dispose()
  129.         End Try
  130.     End Sub
  131.     Private Sub AddGroup()
  132.         Dim li As ListItem = cboGroups.SelectedItem
  133.         Dim strSQL As String = "INSERT INTO RSSGroups (ParentID, GroupTitle) VALUES ('" & _
  134.         CInt(li.Value) & "', '" & txtTitle.Text & "')"
  135.         Dim oConn As New OleDbConnection(AppManager.ConnString)
  136.         Dim oCmd As New OleDbCommand(strSQL, oConn)
  137.         Try
  138.             oConn.Open()
  139.             oCmd.ExecuteNonQuery()
  140.             oConn.Close()
  141.             Me.RSSForm.LoadFromDB()
  142.             Me.Close()
  143.         Catch ex As Exception
  144.             MsgBox(ex.Message.ToString)
  145.         Finally
  146.             oConn.Dispose()
  147.             oCmd.Dispose()
  148.         End Try
  149.     End Sub
  150.     Private Sub cboGroups_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboGroups.SelectedIndexChanged
  151.     End Sub
  152. End Class