簡體   English   中英

從數據庫程序訪問保存的數據

[英]Accessing saved data from database program

這可能是一個愚蠢的問題,如果可以的話,我深表歉意。 我有一個程序,用戶在其中將數據輸入到Windows窗體中並單擊一個按鈕。 該按鈕會將輸入的數據保存到MS Access 2010數據庫中。

我的問題是:單擊按鈕並保存數據后,如果從Access中打開數據庫,是否應該能夠看到保存的數據? 當我運行該程序時,我沒有收到任何錯誤消息,並且一切似乎都可以正常工作,但是當我從Access中打開表時,它是空的。 這是因為從Access打開數據庫會打開一個不同的實例,還是只是不保存數據?

這是Form類的代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace P90XProgram
{
    public partial class AbRipperXForm : Form
    {
        private AbRipperXBOL busObject = 
           new AbRipperXBOL();        

        //default constructor
        public AbRipperXForm()
        {
            InitializeComponent();
            busObject.InitializeConnection();
        }

        //event handler for data input
        private void btnEnterAbRipperXInfo_Click(object sender, EventArgs e)
        {
            //convert input data to int datatype and assign to properties
            busObject.InAndOuts = int.Parse(this.txtInAndOuts.Text);
            busObject.ForwardBicycles = int.Parse(
                this.txtForwardBicycles.Text);
            busObject.ReverseBicycles = int.Parse(
                this.txtReverseBicycles.Text);
            busObject.CrunchyFrog = int.Parse(this.txtCrunchyFrog.Text);
            busObject.CrossLegWideLegSitups = int.Parse(
                this.txtCrossLegWideLegSitups.Text);
            busObject.FiferScissors = int.Parse(this.txtFiferScissors.Text);
            busObject.HipRockNRaise = int.Parse(this.txtHipRockNRaise.Text);
            busObject.PulseUpsHeelsToHeaven = int.Parse(
                this.txtPulseUpsHeelsToHeaven.Text);
            busObject.VUpRollUpCombos = int.Parse(this.txtVUpRollUpCombos.Text);
            busObject.ObliqueVUps = int.Parse(this.txtObliqueVUps.Text);
            busObject.LegClimbs = int.Parse(this.txtLegClimbs.Text);
            busObject.MasonTwists = int.Parse(this.txtMasonTwists.Text);

            //call method to save input data
            busObject.SaveData();

            //clear text boxes of data
            this.txtInAndOuts.Clear();
            this.txtForwardBicycles.Clear();
            this.txtReverseBicycles.Clear();
            this.txtCrunchyFrog.Clear();
            this.txtCrossLegWideLegSitups.Clear();
            this.txtFiferScissors.Clear();
            this.txtHipRockNRaise.Clear();
            this.txtPulseUpsHeelsToHeaven.Clear();
            this.txtVUpRollUpCombos.Clear();
            this.txtObliqueVUps.Clear();
            this.txtLegClimbs.Clear();
            this.txtMasonTwists.Clear();
    }

這是我的業務對象層中的代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Configuration;

namespace P90XProgram
{
    public class AbRipperXBOL
    {
        int inAndOuts = 0,
            forwardBicycles = 0,
            reverseBicycles = 0,
            crunchyFrog = 0,
            crossLegWideLegSitups = 0,
            fiferScissors = 0,
            hipRockNRaise = 0,
            pulseUpsHeelsToHeaven = 0,
            vUpRollUpCombos = 0,
            obliqueVUps = 0,
            legClimbs = 0,
            masonTwists = 0;

        OleDbConnection aConnection = 
            new OleDbConnection(
                "Provider=Microsoft.ACE.OLEDB.12.0;" +
                "Data Source=P90XDatabase.accdb;");       

        public AbRipperXBOL()
        {            
        }

        //property for inAndOuts variable
        public int InAndOuts
        {
            get { return inAndOuts; }
            set { inAndOuts = value; }
        }

        //property for forwardBicycles variable
        public int ForwardBicycles
        {
            get { return forwardBicycles; }
            set { forwardBicycles = value; }
        }

        //property for reverseBicycles variable
        public int ReverseBicycles
        {
            get { return reverseBicycles; }
            set { reverseBicycles = value; }
        }

        //property for crunchyFrog variable
        public int CrunchyFrog
        {
            get { return crunchyFrog; }
            set { crunchyFrog = value; }
        }

        //property for crossLegWideLegSitups variable
        public int CrossLegWideLegSitups
        {
            get { return crossLegWideLegSitups; }
            set { crossLegWideLegSitups = value; }
        }

        //property for fiferScissors variable
        public int FiferScissors
        {
            get { return fiferScissors; }
            set { fiferScissors = value; }
        }

        //property for hipRockNRaise variable
        public int HipRockNRaise
        {
            get { return hipRockNRaise; }
            set { hipRockNRaise = value; }
        }

        //property for pulseUpsHeelsToHeaven
        public int PulseUpsHeelsToHeaven
        {
            get { return pulseUpsHeelsToHeaven; }
            set { pulseUpsHeelsToHeaven = value; }
        }

        //property for vUpRollUpCombos variable
        public int VUpRollUpCombos
        {
            get { return vUpRollUpCombos; }
            set { vUpRollUpCombos = value; }
        }

        //property for obliqueVUps variable
        public int ObliqueVUps
        {
            get { return obliqueVUps; }
            set { obliqueVUps = value; }
        }

        //property for legClimbs variable
        public int LegClimbs
        {
            get { return legClimbs; }
            set { legClimbs = value; }
        }

        //property for masonTwists variable
        public int MasonTwists
        {
            get { return masonTwists; }
            set { masonTwists = value; }
        }

        public void InitializeConnection()
        {
            AbRipperXDAL.InitializeConnection(aConnection);
        } 

        public void SaveData()
        {
            AbRipperXDAL.SaveData(this);
        }        

        public static void BackToMainSchedule()
        {
            P90xScheduleForm f1;            

            if (Application.OpenForms["P90xScheduleForm"] == null)
            {
                f1 = new P90xScheduleForm();
                f1.Name = "P90xScheduleForm";
            }
            else
            {
                f1 = Application.OpenForms["P90xScheduleForm"] as P90xScheduleForm;
            }

            f1.Show();
        }
    }
}

這是我的數據訪問層中的代碼:

using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace P90XProgram
{
    class AbRipperXDAL
    {
        static OleDbConnection aConnection = null;

        public static void InitializeConnection(OleDbConnection aDbConnection)
        {
            aConnection = aDbConnection;
            aConnection.Open();
        }

        public static void SaveData(AbRipperXBOL busObject)
        {
            try
            {
                String sSQLCommand = "INSERT INTO AbRipperX (InAndOuts, " +
                    "ForwardBicycles, ReverseBicycles, CrunchyFrog, " +
                    "CrossLegWideLegSitups, Fiferscissors, HipRockNRaise, " +
                    "PulseUpsHeelsToHeaven, VUpRollUpCombos, ObliqueVUps, " +
                    "LegClimbs, MasonTwists) VALUES ('" + busObject.InAndOuts +
                    "','" + busObject.ForwardBicycles + "','" + 
                    busObject.ReverseBicycles + "','" + busObject.CrunchyFrog +
                    "','" + busObject.CrossLegWideLegSitups + "','" + 
                    busObject.FiferScissors + "','" + busObject.HipRockNRaise +
                    "','" + busObject.PulseUpsHeelsToHeaven + "','" +
                    busObject.VUpRollUpCombos + "','" + busObject.ObliqueVUps +
                    "','" + busObject.LegClimbs + "','" + 
                    busObject.MasonTwists + "')"; 

                if (aConnection.State == ConnectionState.Closed)
                {
                    aConnection.Open();
                }

                OleDbCommand cmd = aConnection.CreateCommand();
                cmd.CommandText = sSQLCommand;
                // Execute the SQL command
                cmd.ExecuteNonQuery();
                aConnection.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }                
        }        
    }
}

一切看起來都不錯! 我會在Console.WriteLine(ex.ToString());上設置一個斷點 看看你是否缺少異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM