DateTime DataGrid Problem

T

Trey

I have a dataGrid that is tied to an access database. One colomn of the
datagrid is a tied to an date/time field of the access database. The schema
is correct. But no matter what time I enter in the cell of the Datagrid it
gets stored in the database as 12:00am when I do an Insert or Update.

I can go into access and put the time in and it shows up correctly on the
datagrid when I reload the data.

What am I doing wrong?

My insert statement is:

INSERT INTO CallLog(Called, Company, Name, Notes, Phone, theDate, theTime)
VALUES (?, ?, ?, ?, ?, ?, ?)

and my Update Statement is:

UPDATE CallLog SET Called = ?, Company = ?, Name = ?, Notes = ?, Phone = ?,
theDate = ?, theTime = ? WHERE (theIndex = ?)
 
M

Miha Markic

Hi Trey,

How is the datatable datacolumn.datatype defined?
How are your parameters set?
 
T

Trey

Here they are.

//

// oleDbInsertCommand1

//

this.oleDbInsertCommand1.CommandText = "INSERT INTO CallLog(Called, Company,
Name, Notes, Phone, theDate, theTime) VALUES" +

" (?, ?, ?, ?, ?, ?, ?)";

this.oleDbInsertCommand1.Connection = this.cn;

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Called",
System.Data.OleDb.OleDbType.Boolean, 2, "Called"));

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Company",
System.Data.OleDb.OleDbType.VarWChar, 50, "Company"));

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Name",
System.Data.OleDb.OleDbType.VarWChar, 50, "Name"));

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Notes",
System.Data.OleDb.OleDbType.VarWChar, 0, "Notes"));

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Phone",
System.Data.OleDb.OleDbType.VarWChar, 50, "Phone"));

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("theDate",
System.Data.OleDb.OleDbType.DBDate, 0, "theDate"));

this.oleDbInsertCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("theTime",
System.Data.OleDb.OleDbType.DBDate, 0, "theTime"));

//

// oleDbSelectCommand1

//

this.oleDbSelectCommand1.CommandText = "SELECT Called, Company, Name, Notes,
Phone, theDate, theIndex, theTime FROM CallL" +

"og";

this.oleDbSelectCommand1.Connection = this.cn;

//

// oleDbUpdateCommand1

//

this.oleDbUpdateCommand1.CommandText = @"UPDATE CallLog SET Called = ?,
Company = ?, Name = ?, Notes = ?, Phone = ?, theDate = ?, theTime = ? WHERE
(theIndex = ?) AND (Called = ?) AND (Company = ? OR ? IS NULL AND Company IS
NULL) AND (Name = ? OR ? IS NULL AND Name IS NULL) AND (Phone = ? OR ? IS
NULL AND Phone IS NULL) AND (theDate = ? OR ? IS NULL AND theDate IS NULL)
AND (theTime = ? OR ? IS NULL AND theTime IS NULL)";

this.oleDbUpdateCommand1.Connection = this.cn;

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Called",
System.Data.OleDb.OleDbType.Boolean, 2, "Called"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Company",
System.Data.OleDb.OleDbType.VarWChar, 50, "Company"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Name",
System.Data.OleDb.OleDbType.VarWChar, 50, "Name"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Notes",
System.Data.OleDb.OleDbType.VarWChar, 0, "Notes"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Phone",
System.Data.OleDb.OleDbType.VarWChar, 50, "Phone"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("theDate",
System.Data.OleDb.OleDbType.DBDate, 0, "theDate"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("theTime",
System.Data.OleDb.OleDbType.DBDate, 0, "theTime"));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_theIndex",
System.Data.OleDb.OleDbType.Integer, 0,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "theIndex", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Called",
System.Data.OleDb.OleDbType.Boolean, 2,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Called", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Company",
System.Data.OleDb.OleDbType.VarWChar, 50,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Company", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Company1",
System.Data.OleDb.OleDbType.VarWChar, 50,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Company", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Name",
System.Data.OleDb.OleDbType.VarWChar, 50,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Name", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Name1",
System.Data.OleDb.OleDbType.VarWChar, 50,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Name", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Phone",
System.Data.OleDb.OleDbType.VarWChar, 50,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Phone", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_Phone1",
System.Data.OleDb.OleDbType.VarWChar, 50,
System.Data.ParameterDirection.Input, false, ((System.Byte)(0)),
((System.Byte)(0)), "Phone", System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_theDate",
System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "theDate",
System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_theDate1",
System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "theDate",
System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_theTime",
System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "theTime",
System.Data.DataRowVersion.Original, null));

this.oleDbUpdateCommand1.Parameters.Add(new
System.Data.OleDb.OleDbParameter("Original_theTime1",
System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "theTime",
System.Data.DataRowVersion.Original, null));
 
M

Miha Markic

Trey,

Change the parameter that holds datetime field from
System.Data.OleDb.OleDbType.DBDate

to

System.Data.OleDb.OleDbType.Date

And it should start working.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top