1

私はここに来たばかりで、問題の解決策がどうしても必要なのでサインアップしただけです。.MDFプロジェクトにインポートしたローカル ファイルを使用する VB.NET プロジェクトがあります。主キーはそのままなので、それは私の問題ではないことがわかります。

Linq-to-SQL を使用してデータベースにクエリを実行し、変更を加えています。私のメイン フォームでは、クエリによって入力されるデータ グリッド ビューを使用します。クエリが正常に機能し、DGV が新しく作成されたデータで更新される挿入に問題がありますが、呼び出すSubmitChanges()と変更が実際の物理データベースに保存されません。何が欠けているのか、間違っているのかわかりません。

これは、教育を受けた回答をより適切に支援するための私のコードです。

Public Class frmCell_Leader
    'Reference DataContext
    Private db As New MarquardtClassesDataContext()

    Private Sub frmCell_Leader_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        FillProductionGrid()
        PrepareInsertFields()
    End Sub

    Private Sub FillProductionGrid()
        ''''''''''''''''''''''''''''''''''
        'E.Salce Last Modified 11.29.2012
        'Comments: Working
        ''''''''''''''''''''''''''''''''''

        'Populate DGV
        Dim query = From marq In db.tblProductivities
                 Select
     marq.PartNum, marq.Produced, marq.Packed, marq.Issue, marq.StationNum, _
     marq.PlanDownTime, marq.UnplannedDownTime, marq.CurDate

        dgvProduction.DataSource = query
    End Sub
    Private Sub PrepareInsertFields()
        ''''''''''''''''''''''''''''''''''
        'E.Salce Last Modified 11.29.2012
        'Comments: Working
        ''''''''''''''''''''''''''''''''''

        'Fill Planned Downtime Combo Box
        Dim PlannedQuery = From planned In db.tblPlannedDownTimes
                           Select planned.Plan_ID, planned.Description, planned.Active
                           Where Active = True

        cboPlanned.DataSource = PlannedQuery
        cboPlanned.DisplayMember = "Description"
        cboPlanned.ValueMember = "Plan_ID"

        'Fill UnPlanned Downtime Combo Box
        Dim UnPlannedQuery = From unplanned In db.tblUnplannedDownTimes
                           Select unplanned.Unplan_ID, unplanned.Description, unplanned.Active
                           Where Active = True

        cboUnplanned.DataSource = UnPlannedQuery
        cboUnplanned.DisplayMember = "Description"
        cboUnplanned.ValueMember = "UnPlan_ID"
    End Sub

    Private Sub btnAdd_Click(sender As System.Object, e As System.EventArgs) Handles btnAdd.Click
        'Add the new Production to database
        'Create an productivity object
        Dim marqpro As New tblProductivity With {
            .PartNum = CShort(txtPartNumber.Text),
            .Produced = CShort(txtProduced.Text),
            .Packed = CShort(txtPacked.Text),
            .Issue = txtIssue.Text,
            .PlanDownTime = CShort(cboPlanned.SelectedValue),
            .UnplannedDownTime = CShort(cboUnplanned.SelectedValue),
            .CurDate = Date.Today}

        'insert newly created data
        Try
            'Submit changes too database
             db.tblProductivities.InsertOnSubmit(marqpro)

            db.SubmitChanges()
            db.Refresh(Data.Linq.RefreshMode.KeepCurrentValues, marqpro)

            'Refresh DGV
            FillProductionGrid()
            MessageBox.Show("Data added successfully")

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message)
        End Try
    End Sub
End Class
4

1 に答える 1