Avatar billede jakobverner Nybegynder
22. februar 2005 - 12:57 Der er 1 løsning

Korrekt overload af datetime fra dataset til database?

Problemet er at jeg har en simpel access database med feltet Tidspunkt af typen dato og klokkeslæt. I mit datagrid kan se at datetime henter dato og tid korrekt til mit dateset, men når overloader/inserter/uploader datesettet til databasen, bliver tiden ikke taget med, hvordan gør jeg det?
(Der er også et felt i databasen der hedder temp(int), men det fungere udemærket)
En detaljeret beskrivelse udbedes!

Koden ser således ud:

// Brug DBTimeStamp til parametre og ikke DBDate
// this.oleDbInsertCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Tidspunkt", System.Data.OleDb.OleDbType.DBTimeStamp, 0, "Tidspunkt"));

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace New_DB
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Data.OleDb.OleDbConnection oleDbConnection1;
        private System.Windows.Forms.DataGrid dataGrid1;
        private System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;
        private System.Windows.Forms.Button btnDelete;
        private System.Windows.Forms.Button btnUpdate;
        private System.Windows.Forms.Button btnAddRow;
        private System.Windows.Forms.Button btnLoad;
        private New_DB.DataSet1 dataSet1;
        private System.Data.OleDb.OleDbCommand oleDbSelectCommand1;
        private System.Data.OleDb.OleDbCommand oleDbInsertCommand1;
        private System.Data.OleDb.OleDbCommand oleDbUpdateCommand1;
        private System.Data.OleDb.OleDbCommand oleDbDeleteCommand1;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
            this.dataGrid1 = new System.Windows.Forms.DataGrid();
            this.dataSet1 = new New_DB.DataSet1();
            this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
            this.oleDbDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
            this.oleDbInsertCommand1 = new System.Data.OleDb.OleDbCommand();
            this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
            this.oleDbUpdateCommand1 = new System.Data.OleDb.OleDbCommand();
            this.btnUpdate = new System.Windows.Forms.Button();
            this.btnAddRow = new System.Windows.Forms.Button();
            this.btnLoad = new System.Windows.Forms.Button();
            this.btnDelete = new System.Windows.Forms.Button();
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
            this.SuspendLayout();
            //
            // oleDbConnection1
            //
            this.oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""C:\Documents and Settings\Administrator\Dokumenter\test.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";
            //
            // dataGrid1
            //
            this.dataGrid1.DataMember = "";
            this.dataGrid1.DataSource = this.dataSet1.temptabel;
            this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
            this.dataGrid1.Location = new System.Drawing.Point(8, 8);
            this.dataGrid1.Name = "dataGrid1";
            this.dataGrid1.Size = new System.Drawing.Size(472, 200);
            this.dataGrid1.TabIndex = 0;
            //
            // dataSet1
            //
            this.dataSet1.DataSetName = "DataSet1";
            this.dataSet1.Locale = new System.Globalization.CultureInfo("da-DK");
            //
            // oleDbDataAdapter1
            //
            this.oleDbDataAdapter1.DeleteCommand = this.oleDbDeleteCommand1;
            this.oleDbDataAdapter1.InsertCommand = this.oleDbInsertCommand1;
            this.oleDbDataAdapter1.SelectCommand = this.oleDbSelectCommand1;
            this.oleDbDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
                                                                                                        new System.Data.Common.DataTableMapping("Table", "temptabel", new System.Data.Common.DataColumnMapping[] {
                                                                                                                                                                                                                    new System.Data.Common.DataColumnMapping("Id", "Id"),
                                                                                                                                                                                                                    new System.Data.Common.DataColumnMapping("Temp", "Temp"),
                                                                                                                                                                                                                    new System.Data.Common.DataColumnMapping("Tidspunkt", "Tidspunkt")})});
            this.oleDbDataAdapter1.UpdateCommand = this.oleDbUpdateCommand1;
            //
            // oleDbDeleteCommand1
            //
            this.oleDbDeleteCommand1.CommandText = "DELETE FROM temptabel WHERE (Id = ?) AND (Temp = ? OR ? IS NULL AND Temp IS NULL)" +
                " AND (Tidspunkt = ? OR ? IS NULL AND Tidspunkt IS NULL)";
            this.oleDbDeleteCommand1.Connection = this.oleDbConnection1;
            this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Id", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Id", System.Data.DataRowVersion.Original, null));
            this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Temp", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Temp", System.Data.DataRowVersion.Original, null));
            this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Temp1", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Temp", System.Data.DataRowVersion.Original, null));
            this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Tidspunkt", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Tidspunkt", System.Data.DataRowVersion.Original, null));
            this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Tidspunkt1", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Tidspunkt", System.Data.DataRowVersion.Original, null));
            //
            // oleDbInsertCommand1
            //
            this.oleDbInsertCommand1.CommandText = "INSERT INTO temptabel(Temp, Tidspunkt) VALUES (?, ?)";
            this.oleDbInsertCommand1.Connection = this.oleDbConnection1;
            this.oleDbInsertCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Temp", System.Data.OleDb.OleDbType.Integer, 0, "Temp"));
            this.oleDbInsertCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Tidspunkt", System.Data.OleDb.OleDbType.DBDate, 0, "Tidspunkt"));
            //
            // oleDbSelectCommand1
            //
            this.oleDbSelectCommand1.CommandText = "SELECT Id, Temp, Tidspunkt FROM temptabel";
            this.oleDbSelectCommand1.Connection = this.oleDbConnection1;
            //
            // oleDbUpdateCommand1
            //
            this.oleDbUpdateCommand1.CommandText = "UPDATE temptabel SET Temp = ?, Tidspunkt = ? WHERE (Id = ?) AND (Temp = ? OR ? IS" +
                " NULL AND Temp IS NULL) AND (Tidspunkt = ? OR ? IS NULL AND Tidspunkt IS NULL)";
            this.oleDbUpdateCommand1.Connection = this.oleDbConnection1;
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Temp", System.Data.OleDb.OleDbType.Integer, 0, "Temp"));
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Tidspunkt", System.Data.OleDb.OleDbType.DBDate, 0, "Tidspunkt"));
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Id", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Id", System.Data.DataRowVersion.Original, null));
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Temp", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Temp", System.Data.DataRowVersion.Original, null));
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Temp1", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Temp", System.Data.DataRowVersion.Original, null));
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Tidspunkt", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Tidspunkt", System.Data.DataRowVersion.Original, null));
            this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Tidspunkt1", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Tidspunkt", System.Data.DataRowVersion.Original, null));
            //
            // btnUpdate
            //
            this.btnUpdate.Location = new System.Drawing.Point(368, 240);
            this.btnUpdate.Name = "btnUpdate";
            this.btnUpdate.TabIndex = 1;
            this.btnUpdate.Text = "Update";
            this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);
            //
            // btnAddRow
            //
            this.btnAddRow.Location = new System.Drawing.Point(248, 240);
            this.btnAddRow.Name = "btnAddRow";
            this.btnAddRow.TabIndex = 2;
            this.btnAddRow.Text = "Add Row";
            this.btnAddRow.Click += new System.EventHandler(this.btnAddRow_Click);
            //
            // btnLoad
            //
            this.btnLoad.Location = new System.Drawing.Point(32, 232);
            this.btnLoad.Name = "btnLoad";
            this.btnLoad.TabIndex = 3;
            this.btnLoad.Text = "Load";
            this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click);
            //
            // btnDelete
            //
            this.btnDelete.Location = new System.Drawing.Point(136, 248);
            this.btnDelete.Name = "btnDelete";
            this.btnDelete.TabIndex = 4;
            this.btnDelete.Text = "Delete";
            this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(488, 314);
            this.Controls.Add(this.btnDelete);
            this.Controls.Add(this.btnLoad);
            this.Controls.Add(this.btnAddRow);
            this.Controls.Add(this.btnUpdate);
            this.Controls.Add(this.dataGrid1);
            this.Name = "Form1";
            this.Text = "Form1";
            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
            this.ResumeLayout(false);

        }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }

        private void btnUpdate_Click(object sender, System.EventArgs e)
        {
            // Gem i DB
            oleDbConnection1.Open();
            oleDbDataAdapter1.Update(dataSet1);
            oleDbConnection1.Close();   
        }

        private void btnAddRow_Click(object sender, System.EventArgs e)
        {
            // Husk her gemmes ikke i databasen
            DataSet1.temptabelRow temptabelRow = dataSet1.temptabel.NewtemptabelRow();
           
            temptabelRow.Temp = 23;
            temptabelRow.Tidspunkt = DateTime.Now;
           
            MessageBox.Show(DateTime.Now.ToString());
           
            dataSet1.temptabel.AddtemptabelRow(temptabelRow);
        }

        private void btnLoad_Click(object sender, System.EventArgs e)
        {   
            dataGrid1.TableStyles.Clear();
                   
            oleDbConnection1.Open();
            oleDbDataAdapter1.Fill(dataSet1);
            oleDbConnection1.Close();

            /* Create a new DataGridTableStyle and set
            its MappingName to the TableName of a DataTable. */
           
            //Under her ændres visningen af Datetime så time også kommer med i visninge
           
            DataGridTableStyle ts1 = new DataGridTableStyle();                       
           
            ts1.MappingName = "temptabel";

            DataGridColumnStyle TextCol1 = new DataGridTextBoxColumn();
            TextCol1.MappingName = "Tidspunkt";
            TextCol1.HeaderText = "Tidspunkt";
            TextCol1.Width = 250;           
            ts1.GridColumnStyles.Add(TextCol1);

            DataGridColumnStyle TextCol2 = new DataGridTextBoxColumn();
            TextCol2.MappingName = "Temp";
            TextCol2.HeaderText = "Temperatur";
            TextCol2.Width = 250;
            ts1.GridColumnStyles.Add(TextCol2);           
           
            dataGrid1.TableStyles.Add(ts1);
        }
        private void btnDelete_Click(object sender, System.EventArgs e)
        {
            //dataSet1.temptabel.RemovetemptabelRow(dataSet1.cu.temptabel.Rows(dataGrid1.CurrentRowIndex));
        }
    }
}
Avatar billede jakobverner Nybegynder
03. marts 2005 - 09:15 #1
Spørgsmål lukket!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester