When I try and read a column that has a negative time value, CoreLabs throws an exception "Incorrect Format".
Steps to reproduce:
1) create a table
Code: Select all
CREATE TABLE `negativetimetest` (
`tst_id` int(11) NOT NULL AUTO_INCREMENT,
`start_date` datetime DEFAULT NULL,
`end_date` datetime DEFAULT NULL,
`time` time DEFAULT NULL,
PRIMARY KEY (`tst_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Code: Select all
INSERT INTO negativetimetest (tst_id, start_date, end_date, time) VALUES ('20080611', '20080612', '2008-06-11', '-14:00:00');
Code: Select all
private void button1_Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection();
MySqlConnectionStringBuilder sb = new MySqlConnectionStringBuilder();
sb.Database = "test";
sb.Direct = true;
sb.Host = "myhost";
sb.Password = "mypassword";
sb.Unicode = true;
sb.UserId = "myuserid";
conn.ConnectionString = sb.ConnectionString;
conn.Open();
if (conn.State != ConnectionState.Open)
return;
MySqlDataReader reader = null;
try
{
MySqlCommand cmd = new MySqlCommand("select * from negativetimetest");
cmd.Connection = conn;
reader = cmd.ExecuteReader();
while (reader.Read())
{
rtbResult.AppendText(string.Format("Current record: {0}\r\n", reader.CurrentRecord));
rtbResult.AppendText(string.Format("tst_id ={0}, ", reader.GetInt32(0).ToString()));
rtbResult.AppendText(string.Format("start_date ={0}, ", reader.GetDateTime(1)));
rtbResult.AppendText(string.Format("end_date ={0}, ", reader.GetDateTime(2)));
rtbResult.AppendText(string.Format("time ={0}\r\n", reader.GetTimeSpan(3)));
}
}
catch (Exception ex)
{
rtbResult.AppendText(string.Format("\r\nError: {0}\r\n{1}\r\n",ex.Message, ex.StackTrace));
}
finally
{
if (reader != null)
reader.Close();
}
conn.Close();
}
}
Current record: 0
tst_id =20080611, start_date =6/12/2008 12:00:00 AM, end_date =6/11/2008 12:00:00 AM,
Error: IncorrectFormat
at CoreLab.MySql.bb.d(Byte[] A_0, Int32 A_1, Int32 A_2)
at CoreLab.MySql.MySqlDataReader.GetTimeSpan(Int32 i)
at NegativeTime.Form1.button1_Click(Object sender, EventArgs e) in C:\Documents and Settings\DFowler\My Documents\Visual Studio 2005\Projects\NegativeTime\NegativeTime\Form1.cs:line 47