2013-10-24 63 views
0

我收到錯誤「執行sqlcommand時,將varchar數據類型轉換爲日期時間數據類型導致超出範圍值」。日期時間輸入是「2013年10月24日下午6時25分三十秒」 // 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

您的數據庫可能是期待DD/MM/YYYY日期FORMATDB替換您的日期格式,所以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。我懷疑格式與數據庫中的日期格式不一樣。 嘗試:

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

在你的數據庫

相關問題