2013-10-24 4 views
0

Я получаю сообщение об ошибке «Преобразование типа данных varchar в тип данных даты и времени приводило к превышению значения» при выполнении sqlcommand. Ввод времени дата «10/24/2013 6:25:30 PM» // C# КодОшибка при преобразовании строки в формат datetime в C#

string sa1 = dateTimePicker1.Value.ToString("MM/dd/yyyy"); 
    string fr = textBox1.Text; 
    string dt = sa1 + " " + fr; 
    string to = textBox2.Text; 
    string dt1 = sa1 + " " + to; 

    DateTime tim = DateTime.ParseExact(dt.ToString(), "MM/dd/yyyy hh:mm:ss tt",System.Globalization.CultureInfo.InvariantCulture); 
    DateTime tim1 = DateTime.ParseExact(dt1.ToString(), "MM/dd/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture); 
    DateTime tim2 = Convert.ToDateTime(tim); 
    DateTime tim3 = Convert.ToDateTime(tim1); 
    dataGridView1.Rows.Clear(); 
    SqlConnection con = new SqlConnection("Data Source=173.83.250.71,1433; Network Library=DBMSSOCN; Initial Catalog=paradigm;User Id=sa; password=Paradigm123"); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("insert into paradigm.dbo.driverotcalc (emp_no, fro, too, purpose, totalhrs, entdate, amount) values('" + emp.ToString() + "','" + tim2.ToString() + "','" + tim3.ToString() + "','" + textBox3.Text + "','" + textBox4.Text + "','" + DateTime.Now + "','" + textBox5.Text + "')",con); 

    cmd.ExecuteNonQuery(); 

Может ли один помочь мне в решении этого вопроса.

+0

Ваш DB вероятно ожидающей даты дд/мм/гггг, поэтому 24 не является действительным месяц. – Baldrick

+0

Вам будет лучше использовать параметризованный запрос. – Tarik

+0

См. Http://stackoverflow.com/questions/542510/how-do-i-create-a-parameterized-sql-query-why-should-i/542545#542545 о том, как создать параметризованный запрос – Tarik

ответ

1

Вставить DateTime.Now. Я подозреваю, что формат не совпадает с форматом даты в вашей базе данных. Try:

string formatDB ="YYYY/MM/dd"; 
DateTime.Now.ToString(formatDB); 

Заменить formatDB ваш формат даты в базе данных

Смежные вопросы