綁定的grid數據源,Save 怎樣取得checkbox的值,0/1
代碼:
Private Sub frmProduction_Plan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.dgvPrdsch.AutoGenerateColumns = False
Me.dgvPrdsch.MultiSelect = False
isChangesFlag = False
MainMenu.statuslaber.Text = "" '生產排單
pSql = "select * from Prdsch mrec where 1=2 and " & gSecSet.com
Call getPrdschData()
End Sub Private Sub getPrdschData()
Dim intRow As Integer
pDS_Prdsch = gGetDataSet(gCN, pSql, "Prdsch")
'pDS_Prdsch.Tables("Prdsch").Columns("out_date").DefaultValue = gFormatDate(gCurrentDate().ToString)
pBindingSource_Prdsch = New BindingSource
pBindingSource_Prdsch.DataSource = pDS_Prdsch.Tables("Prdsch") 'set DataSource
dgvPrdsch.DataSource = pBindingSource_PrdschEnd Sub 'Save
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim numberRows As Integer
Dim strIcnNo As String '配方單號
Dim strSample_Flag As String strIcnNo = ""
strSample_Flag = "N"
Try
If isChangesFlag Then
If MainMenu.statuslaber.Text <> "" AndAlso _
MainMenu.statuslaber.Text <> gGetMessage(gMessageCode.MasterFinderAlert, "") Then '當狀態欄的提示是錯誤提示時,不允許保存 MessageBox.Show(gGetMessage(gMessageCode.SaveFailure, ""), Me.Tag, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else
ChangeCurrentCell(Me.dgvPrdsch)
'save '更新保存入Prdsch
'insert
pDa = New System.Data.SqlClient.SqlDataAdapter
pDa.AcceptChangesDuringUpdate = True
pDa.InsertCommand = New System.Data.SqlClient.SqlCommand
pDa.InsertCommand.Connection = gCN
pDa.InsertCommand.CommandText = "INSERT INTO Prdsch "
pDa.InsertCommand.CommandType = System.Data.CommandType.Text With pDa.InsertCommand.Parameters
.Add("@sample_flag", SqlDbType.Char, 1).Value = strSample_Flag
.Add("@order_flag", SqlDbType.Char, 1).Value = 'checkbox的值
End With 'update
pDa.UpdateCommand = New System.Data.SqlClient.SqlCommand
pDa.UpdateCommand.Connection = gCN
pDa.UpdateCommand.CommandText = "UPDATE Prdsch SET "
pDa.UpdateCommand.CommandType = System.Data.CommandType.Text With pDa.UpdateCommand.Parameters
.Add("@product_date", System.Data.SqlDbType.DateTime, 8).Value = dtpProduct_date.Text
End With 'delete
pDa.DeleteCommand = New System.Data.SqlClient.SqlCommand
pDa.DeleteCommand.Connection = gCN pDa.DeleteCommand.CommandText = "DELETE Prdsch " & _
"WHERE product_order = @Original_product_order " & _
"and company_id = @company_id " & _
"and product_number = @product_number" With pDa.DeleteCommand.Parameters
.Add("@company_id", System.Data.SqlDbType.NChar, 2, "company_id")
End With numberRows += pDa.Update(pDS_Prdsch, "Prdsch") 'save Prdsch end pDa.AcceptChangesDuringUpdate = True MessageBox.Show("生產排單資料" & gGetMessage(gMessageCode.SaveSuccess, ""), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End If
Catch ex As Exception If ex.Message.Contains("DELETE 陳述式與 REFERENCE 條件約束") Then MessageBox.Show(gGetMessage(gMessageCode.RefDeleteFailure, ""), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) ElseIf ex.Message.Contains("Cannot insert duplicate key") Then MessageBox.Show(gGetMessage(gMessageCode.SaveFailure, "資料已存在!"), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else MessageBox.Show(gGetMessage(gMessageCode.SaveFailure, ex.Message.Trim()), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End If
End Try
End Sub
代碼:
Private Sub frmProduction_Plan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.dgvPrdsch.AutoGenerateColumns = False
Me.dgvPrdsch.MultiSelect = False
isChangesFlag = False
MainMenu.statuslaber.Text = "" '生產排單
pSql = "select * from Prdsch mrec where 1=2 and " & gSecSet.com
Call getPrdschData()
End Sub Private Sub getPrdschData()
Dim intRow As Integer
pDS_Prdsch = gGetDataSet(gCN, pSql, "Prdsch")
'pDS_Prdsch.Tables("Prdsch").Columns("out_date").DefaultValue = gFormatDate(gCurrentDate().ToString)
pBindingSource_Prdsch = New BindingSource
pBindingSource_Prdsch.DataSource = pDS_Prdsch.Tables("Prdsch") 'set DataSource
dgvPrdsch.DataSource = pBindingSource_PrdschEnd Sub 'Save
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim numberRows As Integer
Dim strIcnNo As String '配方單號
Dim strSample_Flag As String strIcnNo = ""
strSample_Flag = "N"
Try
If isChangesFlag Then
If MainMenu.statuslaber.Text <> "" AndAlso _
MainMenu.statuslaber.Text <> gGetMessage(gMessageCode.MasterFinderAlert, "") Then '當狀態欄的提示是錯誤提示時,不允許保存 MessageBox.Show(gGetMessage(gMessageCode.SaveFailure, ""), Me.Tag, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else
ChangeCurrentCell(Me.dgvPrdsch)
'save '更新保存入Prdsch
'insert
pDa = New System.Data.SqlClient.SqlDataAdapter
pDa.AcceptChangesDuringUpdate = True
pDa.InsertCommand = New System.Data.SqlClient.SqlCommand
pDa.InsertCommand.Connection = gCN
pDa.InsertCommand.CommandText = "INSERT INTO Prdsch "
pDa.InsertCommand.CommandType = System.Data.CommandType.Text With pDa.InsertCommand.Parameters
.Add("@sample_flag", SqlDbType.Char, 1).Value = strSample_Flag
.Add("@order_flag", SqlDbType.Char, 1).Value = 'checkbox的值
End With 'update
pDa.UpdateCommand = New System.Data.SqlClient.SqlCommand
pDa.UpdateCommand.Connection = gCN
pDa.UpdateCommand.CommandText = "UPDATE Prdsch SET "
pDa.UpdateCommand.CommandType = System.Data.CommandType.Text With pDa.UpdateCommand.Parameters
.Add("@product_date", System.Data.SqlDbType.DateTime, 8).Value = dtpProduct_date.Text
End With 'delete
pDa.DeleteCommand = New System.Data.SqlClient.SqlCommand
pDa.DeleteCommand.Connection = gCN pDa.DeleteCommand.CommandText = "DELETE Prdsch " & _
"WHERE product_order = @Original_product_order " & _
"and company_id = @company_id " & _
"and product_number = @product_number" With pDa.DeleteCommand.Parameters
.Add("@company_id", System.Data.SqlDbType.NChar, 2, "company_id")
End With numberRows += pDa.Update(pDS_Prdsch, "Prdsch") 'save Prdsch end pDa.AcceptChangesDuringUpdate = True MessageBox.Show("生產排單資料" & gGetMessage(gMessageCode.SaveSuccess, ""), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End If
Catch ex As Exception If ex.Message.Contains("DELETE 陳述式與 REFERENCE 條件約束") Then MessageBox.Show(gGetMessage(gMessageCode.RefDeleteFailure, ""), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) ElseIf ex.Message.Contains("Cannot insert duplicate key") Then MessageBox.Show(gGetMessage(gMessageCode.SaveFailure, "資料已存在!"), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else MessageBox.Show(gGetMessage(gMessageCode.SaveFailure, ex.Message.Trim()), Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End If
End Try
End Sub
如果数据库字段是Bit型的,当值为1的时候,Checked就是True,为0的时候是False
如果不是Bit型的。用RowDataBound事件也可以重新翻译。
MessageBox 看见这东西我就没什么可说的了..