📄 form4.vb
字号:
'
Me.Income1.DataSetName = "income"
Me.Income1.Locale = New System.Globalization.CultureInfo("zh-CN")
'
'OleDbDataAdapter1
'
Me.OleDbDataAdapter1.InsertCommand = Me.OleDbInsertCommand2
Me.OleDbDataAdapter1.SelectCommand = Me.OleDbSelectCommand2
Me.OleDbDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "Income", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("项目名称", "项目名称"), New System.Data.Common.DataColumnMapping("匹配码", "匹配码")})})
'
'OleDbInsertCommand2
'
Me.OleDbInsertCommand2.CommandText = "INSERT INTO Income(匹配码, 项目名称) VALUES (?, ?)"
Me.OleDbInsertCommand2.Connection = Me.OleDbConnection1
Me.OleDbInsertCommand2.Parameters.Add(New System.Data.OleDb.OleDbParameter("匹配码", System.Data.OleDb.OleDbType.VarWChar, 10, "匹配码"))
Me.OleDbInsertCommand2.Parameters.Add(New System.Data.OleDb.OleDbParameter("项目名称", System.Data.OleDb.OleDbType.VarWChar, 15, "项目名称"))
'
'OleDbSelectCommand2
'
Me.OleDbSelectCommand2.CommandText = "SELECT 匹配码, 项目名称 FROM Income"
Me.OleDbSelectCommand2.Connection = Me.OleDbConnection1
'
'Form4
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(624, 393)
Me.Controls.Add(Me.ComboBox1)
Me.Controls.Add(Me.MonthCalendar1)
Me.Controls.Add(Me.Button6)
Me.Controls.Add(Me.Button5)
Me.Controls.Add(Me.Button4)
Me.Controls.Add(Me.Button3)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.TextBox2)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.DataGrid1)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.Name = "Form4"
Me.Text = "Form4"
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Incometable1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Income1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
'进入Form的事件
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'填充2个DataSet
incometable.Fill(Incometable1)
OleDbDataAdapter1.Fill(Income1)
'设置按钮
dobutton(1, 1, 1, 0, 0)
'设置文本框和ComboBox,其中日期选择的文本框为无效
TextBox1.Enabled = False
ComboBox1.Enabled = False
End Sub
'建立dobutton函数
Private Function dobutton(ByVal a, ByVal b, ByVal c, ByVal d, ByVal e)
'首先将5个按钮均置为False
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button6.Enabled = False
'判断a,b,c,d,e的值,1则为按钮有效,0为按钮无效
If a = 1 Then Button1.Enabled = True
If b = 1 Then Button2.Enabled = True
If c = 1 Then Button3.Enabled = True
If d = 1 Then Button4.Enabled = True
If e = 1 Then Button6.Enabled = True
End Function
'当DataGrid当前单元格变化的时候响应事件
Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
'设置5个功能按键
dobutton(1, 1, 1, 0, 0)
'Textbox1显示的是金额
TextBox1.Text = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 0)
'Textbox2显示的是日期
TextBox2.Text = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 1)
'ComboBox1显示的是项目名称
ComboBox1.Text = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 2)
'设置文本框和ComboBox为无效
TextBox1.Enabled = False
ComboBox1.Enabled = False
End Sub
'响应关闭的事件
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'关闭对话框
Me.Close()
End Sub
'响应添加的事件
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'状态加1
n = n + 1
'如果n=1,则表示现在是输入状态
If n = 1 Then
'打开Textbox和ComboBox接受用户数据并清空Textbox和ComboBox中间的内容
TextBox1.Enabled = True
ComboBox1.Enabled = True
TextBox1.Text = ""
ComboBox1.Text = ""
'TextBox2中的内容是当前的日期
TextBox2.Text = CStr(Today.Date.ToShortDateString)
'设置按键
dobutton(1, 0, 0, 1, 1)
End If
'如果n=2,则表示现在是更新数据库的操作
If n = 2 And TextBox1.Text <> "" And TextBox2.Text <> "" And ComboBox1.Text <> "" Then '对输入的数据进行判断和校验
'生成SQL语句
nsql = "INSERT INTO incometable VALUES(" + Chr(39) + CStr(TextBox2.Text) + Chr(39) + "," + Chr(39) + CStr(ComboBox1.Text) + Chr(39) + "," + Chr(39) + CStr(TextBox1.Text) + Chr(39) + ")"
'打开数据库
OleDbConnection1.Open()
'指定SQL语句对应的连接和SQL语句
ncommand.Connection = OleDbConnection1
ncommand.CommandText() = nsql
'执行SQL语句,更新数据库
ncommand.ExecuteNonQuery()
'更新Incometable1 DataSet数据集
Incometable1.Clear()
incometable.Fill(Incometable1)
'关闭数据库连接
OleDbConnection1.Close()
'设置Textbox和ComboBox无效
TextBox1.Enabled = False
ComboBox1.Enabled = False
'设置按钮
dobutton(1, 1, 1, 0, 0)
End If
'如果n=2表示状态标志结束,置0
If n = 2 Then n = 0
End Sub
'响应选择日期事件
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'日期控件可见
MonthCalendar1.Visible = True
End Sub
'日期控件选择日期的事件
Private Sub MonthCalendar1_DateSelected(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected
'定义gdate是Date类型变量
Dim gdate As Date
'gdate是选择的日期
gdate = MonthCalendar1.SelectionRange.Start()
'设置日期控件不可见
MonthCalendar1.Visible = False
'更新Textbox2的内容
TextBox2.Text = CStr(gdate)
End Sub
'响应取消的事件
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'设置按钮,恢复原来设定
dobutton(1, 1, 1, 0, 0)
'置状态为0
n = 0
'设置Textbox和ComboBox无效
TextBox1.Enabled = False
ComboBox1.Enabled = False
End Sub
'响应删除的事件
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'生成SQL语句
nsql = "DELETE FROM incometable WHERE 金额=" + Chr(39) + CStr(TextBox1.Text) + Chr(39) + " and 日期=" + Chr(39) + CStr(TextBox2.Text) + Chr(39) + " and 项目名称=" + Chr(39) + CStr(ComboBox1.Text) + Chr(39)
'打开数据库
OleDbConnection1.Open()
'指定SQL语句对应的连接,指定SQL语句
ncommand.Connection = OleDbConnection1
ncommand.CommandText() = nsql
'执行SQL语句,更新数据库
ncommand.ExecuteNonQuery()
'更新Income1 DataSet数据集
Incometable1.Clear()
incometable.Fill(Incometable1)
'关闭数据库连接
OleDbConnection1.Close()
End Sub
'响应更新的事件
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'状态加1,如果n=1,则表示现在是输入状态
n = n + 1
If n = 1 Then
'备份原来数据库中的数据
bak1 = TextBox1.Text
bak2 = TextBox2.Text
bak3 = ComboBox1.Text
'打开Textbox接受用户数据并且设置按钮
TextBox1.Enabled = True
ComboBox1.Enabled = True
dobutton(0, 0, 1, 1, 1)
End If
'如果n=2,则表示现在是更新数据库的操作
If n = 2 And TextBox1.Text <> "" And TextBox2.Text <> "" And ComboBox1.Text <> "" Then '对输入的数据进行判断和校验
'生成SQL语句
nsql = "UPDATE incometable SET 金额=" + Chr(39) + CStr(TextBox1.Text) + Chr(39) + " , 日期=" + Chr(39) + CStr(TextBox2.Text) + Chr(39) + " , 项目名称=" + Chr(39) + CStr(ComboBox1.Text) + Chr(39) + " WHERE 金额=" + Chr(39) + bak1 + Chr(39) + " and 日期=" + Chr(39) + bak2 + Chr(39) + " and 项目名称=" + Chr(39) + bak3 + Chr(39)
'打开数据库
OleDbConnection1.Open()
'指定SQL语句对应的连接,指定SQl语句
ncommand.Connection = OleDbConnection1
ncommand.CommandText() = nsql
'执行SQL语句,更新数据库
ncommand.ExecuteNonQuery()
'更新Income1 DataSet数据集
Incometable1.Clear()
incometable.Fill(Incometable1)
'关闭数据库连接
OleDbConnection1.Close()
'设置Textbox和ComboBox不可用,设置按钮
TextBox1.Enabled = False
ComboBox1.Enabled = False
dobutton(1, 1, 1, 0, 0)
End If
'如果n=2表示状态标志结束,置0
If n = 2 Then n = 0
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim keycode As Integer
keycode = Asc(e.KeyChar)
If (keycode >= 48 And keycode <= 57) Or (keycode = 46) Then
Else
MessageBox.Show("请输入数字")
e.Handled = True
End If
End Sub
Private Sub check(ByVal str As String)
'if str.
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -