还有问题,修改保存不能更新库,调试了N天了。用添加数据时生成的控件不行,只好用老办法。
Imports System.Data.SqlClient
Imports 人事管理系统.rsglxtDataSetTableAdapters
Imports 人事管理系统.rsglxtDataSet
Public Class 编辑员工档案
Dim flag As String = ""
Private Sub SetControlDisable()
GroupBox1.Enabled = False
End Sub
Private Sub SetControlEnable()
GroupBox1.Enabled = True
End Sub
Dim myda As New 员工档案表TableAdapter
Dim mydt As 员工档案表DataTable
'使用dataview定制从数据库返回的、存储在DataSet中的记录的视图
Dim myDataView As DataView
'CurrencyManager用于控制绑定数据
Dim bmdata As CurrencyManager
'数据填充并更新显示过程
Private Sub FillDataSetAndView()
mydt = New 员工档案表DataTable
myda.Fill(mydt)
'将表填入dataview
myDataView = New DataView(mydt)
'将DataView变量绑定控件,能记录位置
bmdata = Me.BindingContext(myDataView)
End Sub
'获得数据库最新数据,并填充DataView对象
Private Sub BindFields()
员工编号TextBox.DataBindings.Clear()
姓名TextBox.DataBindings.Clear()
性别ComboBox.DataBindings.Clear()
籍贯TextBox.DataBindings.Clear()
出生日期DateTimePicker.DataBindings.Clear()
学历TextBox.DataBindings.Clear()
专业TextBox.DataBindings.Clear()
身份证号TextBox.DataBindings.Clear()
婚姻状况ComboBox.DataBindings.Clear()
政治面貌ComboBox.DataBindings.Clear()
电话号码TextBox.DataBindings.Clear()
电子邮箱TextBox.DataBindings.Clear()
家庭住址TextBox.DataBindings.Clear()
邮政编码TextBox.DataBindings.Clear()
进入公司时间DateTimePicker.DataBindings.Clear()
起薪时间DateTimePicker.DataBindings.Clear()
所在部门TextBox.DataBindings.Clear()
进入部门时间DateTimePicker.DataBindings.Clear()
职称TextBox.DataBindings.Clear()
通过时间DateTimePicker.DataBindings.Clear()
工作经验TextBox.DataBindings.Clear()
其他备注TextBox.DataBindings.Clear()
员工编号TextBox.DataBindings.Add("text", myDataView, "员工编号")
姓名TextBox.DataBindings.Add("text", myDataView, "姓名")
籍贯TextBox.DataBindings.Add("text", myDataView, "籍贯")
出生日期DateTimePicker.DataBindings.Add("value", myDataView, "出生日期")
学历TextBox.DataBindings.Add("text", myDataView, "学历")
专业TextBox.DataBindings.Add("text", myDataView, "专业")
身份证号TextBox.DataBindings.Add("text", myDataView, "身份证号")
婚姻状况ComboBox.DataBindings.Add("text", myDataView, "婚姻状况")
政治面貌ComboBox.DataBindings.Add("text", myDataView, "政治面貌")
电话号码TextBox.DataBindings.Add("text", myDataView, "电话号码")
电子邮箱TextBox.DataBindings.Add("text", myDataView, "电子邮箱")
家庭住址TextBox.DataBindings.Add("text", myDataView, "家庭住址")
邮政编码TextBox.DataBindings.Add("text", myDataView, "邮政编码")
进入公司时间DateTimePicker.DataBindings.Add("value", myDataView, "进入公司时间")
起薪时间DateTimePicker.DataBindings.Add("value", myDataView, "起薪时间")
所在部门TextBox.DataBindings.Add("text", myDataView, "所在部门")
进入部门时间DateTimePicker.DataBindings.Add("value", myDataView, "进入部门时间")
职称TextBox.DataBindings.Add("text", myDataView, "职称")
通过时间DateTimePicker.DataBindings.Add("value", myDataView, "通过时间")
工作经验TextBox.DataBindings.Add("text", myDataView, "工作经验")
其他备注TextBox.DataBindings.Add("text", myDataView, "其他备注")
End Sub
Private Sub 编辑员工档案_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
性别ComboBox.Items.Add("男")
性别ComboBox.Items.Add("女")
性别ComboBox.SelectedIndex = 0
婚姻状况ComboBox.Items.Add("已婚")
婚姻状况ComboBox.Items.Add("未婚")
婚姻状况ComboBox.SelectedIndex = 0
政治面貌ComboBox.Items.Add("中共党员")
政治面貌ComboBox.Items.Add("共青团员")
政治面貌ComboBox.Items.Add("群众")
SetControlDisable()
FillDataSetAndView()
BindFields()
DataGridView1.DataSource = mydt
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
flag = "add"
SetControlEnable()
员工编号TextBox.Text = ""
姓名TextBox.Text = ""
性别ComboBox.Text = ""
籍贯TextBox.Text = ""
出生日期DateTimePicker.Value = Today
学历TextBox.Text = ""
专业TextBox.Text = ""
身份证号TextBox.Text = ""
婚姻状况ComboBox.Text = ""
政治面貌ComboBox.Text = ""
电话号码TextBox.Text = ""
电子邮箱TextBox.Text = ""
家庭住址TextBox.Text = ""
邮政编码TextBox.Text = ""
进入公司时间DateTimePicker.Value = Today
起薪时间DateTimePicker.Value = Today
所在部门TextBox.Text = ""
进入部门时间DateTimePicker.Text = ""
职称TextBox.Text = ""
通过时间DateTimePicker.Value = Today
工作经验TextBox.Text = ""
其他备注TextBox.Text = ""
Try
bmdata.EndCurrentEdit()
bmdata.AddNew()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub btnModify_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModify.Click
flag = "modify"
SetControlEnable()
员工编号TextBox.Focus()
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Try
'UpdateDataTable()
If flag = "add" Then
myda.Insert( _
员工编号TextBox.Text, _
姓名TextBox.Text, _
性别ComboBox.Text, _
籍贯TextBox.Text, _
出生日期DateTimePicker.Value, _
学历TextBox.Text, _
专业TextBox.Text, _
身份证号TextBox.Text, _
婚姻状况ComboBox.Text, _
政治面貌ComboBox.Text, _
电话号码TextBox.Text, _
电子邮箱TextBox.Text, _
家庭住址TextBox.Text, _
邮政编码TextBox.Text, _
进入公司时间DateTimePicker.Value, _
起薪时间DateTimePicker.Value, _
所在部门TextBox.Text, _
进入部门时间DateTimePicker.Value, _
职称TextBox.Text, _
通过时间DateTimePicker.Value, _
工作经验TextBox.Text, _
其他备注TextBox.Text)
ElseIf flag = "modify" Then
Dim conn As SqlConnection = GetConnetion()
conn.Open()
Dim strSql As String = _
"Update 员工档案表 " _
& "Set 姓名=@姓名,性别=@性别,籍贯=@籍贯,出生日期=@出生日期,学历=@学历,专业=@专业,身份证号=@身份证号," _
& "婚姻状况=@婚姻状况,政治面貌=@政治面貌,电话号码=@电话号码,电子邮箱=@电子邮箱,家庭住址=@家庭住址,邮政编码=@邮政编码," _
& "进入公司时间=@进入公司时间,起薪时间=@起薪时间,所在部门=@所在部门,进入部门时间=@进入部门时间,职称=@职称," _
& "通过时间=@通过时间,工作经验=@工作经验,其他备注=@其他备注 " _
& "Where 员工编号='{0}'"
strSql = String.Format(strSql, 员工编号TextBox.Text)
Dim comm As New SqlCommand(strSql, conn)
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@姓名", 姓名TextBox.Text)
comm.Parameters.AddWithValue("@性别", 性别ComboBox.Text)
comm.Parameters.AddWithValue("@籍贯", 籍贯TextBox.Text)
comm.Parameters.AddWithValue("@出生日期", 出生日期DateTimePicker.Value)
comm.Parameters.AddWithValue("@学历", 学历TextBox.Text)
comm.Parameters.AddWithValue("@专业", 专业TextBox.Text)
comm.Parameters.AddWithValue("@身份证号", 身份证号TextBox.Text)
comm.Parameters.AddWithValue("@婚姻状况", 婚姻状况ComboBox.Text)
comm.Parameters.AddWithValue("@政治面貌", 政治面貌ComboBox.Text)
comm.Parameters.AddWithValue("@电话号码", 电话号码TextBox.Text)
comm.Parameters.AddWithValue("@电子邮箱", 电子邮箱TextBox.Text)
comm.Parameters.AddWithValue("@家庭住址", 家庭住址TextBox.Text)
comm.Parameters.AddWithValue("@邮政编码", 邮政编码TextBox.Text)
comm.Parameters.AddWithValue("@进入公司时间", 进入公司时间DateTimePicker.Value)
comm.Parameters.AddWithValue("@起薪时间", 起薪时间DateTimePicker.Value)
comm.Parameters.AddWithValue("@所在部门", 所在部门TextBox.Text)
comm.Parameters.AddWithValue("@进入部门时间", 进入部门时间DateTimePicker.Value)
comm.Parameters.AddWithValue("@职称", 职称TextBox.Text)
comm.Parameters.AddWithValue("@通过时间", 通过时间DateTimePicker.Value)
comm.Parameters.AddWithValue("@工作经验", 工作经验TextBox.Text)
comm.Parameters.AddWithValue("@其他备注", 其他备注TextBox.Text)
comm.ExecuteNonQuery()
conn.Close()
Else
flag = ""
Exit Sub
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
FillDataSetAndView()
BindFields()
SetControlDisable()
DataGridView1.DataSource = mydt
End Sub
Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
If MessageBox.Show("确定删除吗?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) = DialogResult.Yes Then
If bmdata.Count > 0 Then
mydt.Rows(bmdata.Position).Delete()
Dim dt As 员工档案表DataTable = mydt.GetChanges
myda.Update(dt)
End If
End If
FillDataSetAndView()
BindFields()
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
bmdata.Position = 0
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
If bmdata.Position = mydt.Rows.Count - 1 Then
MsgBox("已经是最后一条")
Else
bmdata.Position = bmdata.Position + 1
End If
End Sub
Private Sub btnPre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPre.Click
If bmdata.Position = 0 Then
MsgBox("已经是第一条")
Else
bmdata.Position = bmdata.Position - 1
End If
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
bmdata.Position = mydt.Rows.Count - 1
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim intIndex As Integer = e.RowIndex
Try
员工编号TextBox.Text = DataGridView1.Rows(intIndex).Cells(0).Value
姓名TextBox.Text = DataGridView1.Rows(intIndex).Cells(1).Value
性别ComboBox.Text = DataGridView1.Rows(intIndex).Cells(2).Value
籍贯TextBox.Text = DataGridView1.Rows(intIndex).Cells(3).Value
出生日期DateTimePicker.Value = DataGridView1.Rows(intIndex).Cells(4).Value
学历TextBox.Text = DataGridView1.Rows(intIndex).Cells(5).Value
专业TextBox.Text = DataGridView1.Rows(intIndex).Cells(6).Value
身份证号TextBox.Text = DataGridView1.Rows(intIndex).Cells(7).Value
婚姻状况ComboBox.Text = DataGridView1.Rows(intIndex).Cells(8).Value
政治面貌ComboBox.Text = DataGridView1.Rows(intIndex).Cells(9).Value
电话号码TextBox.Text = DataGridView1.Rows(intIndex).Cells(10).Value
电子邮箱TextBox.Text = DataGridView1.Rows(intIndex).Cells(11).Value
家庭住址TextBox.Text = DataGridView1.Rows(intIndex).Cells(12).Value
邮政编码TextBox.Text = DataGridView1.Rows(intIndex).Cells(13).Value
进入公司时间DateTimePicker.Value = DataGridView1.Rows(intIndex).Cells(14).Value
起薪时间DateTimePicker.Value = DataGridView1.Rows(intIndex).Cells(15).Value
所在部门TextBox.Text = DataGridView1.Rows(intIndex).Cells(16).Value
进入部门时间DateTimePicker.Text = DataGridView1.Rows(intIndex).Cells(17).Value
职称TextBox.Text = DataGridView1.Rows(intIndex).Cells(18).Value
通过时间DateTimePicker.Value = DataGridView1.Rows(intIndex).Cells(19).Value
工作经验TextBox.Text = DataGridView1.Rows(intIndex).Cells(20).Value
其他备注TextBox.Text = DataGridView1.Rows(intIndex).Cells(21).Value
Catch ex As Exception
Exit Sub
End Try
End Sub
End Class