我有一個問題,使用壓延控制..我在文本框中獲取日期...我必須將此插入到數據庫..使用asp.net與c#如何從asp.net c#插入datetime屬性到sql server中的日期列?
在我的web應用程序領域屬性設置爲datetime
,表中該列的數據類型爲date
..
我該怎麼做?
我正的錯誤是:
varchar數據類型到datetime數據類型的轉化在外的範圍內的值導致 。該語句已終止。
任何人都可以在這方面幫助我嗎?
預先感謝
我有一個問題,使用壓延控制..我在文本框中獲取日期...我必須將此插入到數據庫..使用asp.net與c#如何從asp.net c#插入datetime屬性到sql server中的日期列?
在我的web應用程序領域屬性設置爲datetime
,表中該列的數據類型爲date
..
我該怎麼做?
我正的錯誤是:
varchar數據類型到datetime數據類型的轉化在外的範圍內的值導致 。該語句已終止。
任何人都可以在這方面幫助我嗎?
預先感謝
我收到的錯誤是:varchar數據類型爲datetime數據類型的轉換導致外的範圍內的值。
這聽起來像你試圖插入它作爲一個字符串,這是一個普遍的壞主意。您應該使用參數化SQL並將該值設置爲參數,仍爲.NET DateTime
。有關參數化SQL的示例,請參閱SqlCommand.Parameters
的文檔。您應始終儘可能長時間保持數據的自然類型。
當然,它仍然是仍然如果您嘗試插入超出SQL可存儲範圍的DateTime
值,則可能會出現此錯誤。特別是,我認爲SQL的年度下限爲1753。如果你的價值是DateTime.MinValue
出於某種原因(1月1日,1AD),那麼你仍然會遇到這個問題。你是否爲你試圖插入的值添加了診斷?
我有這樣的DateTime問題 - 我的主要答案也列出。但是我遇到了兩個問題,我遇到的一個問題是DateTime不足以處理FileTime。所以SQL 2008 R2在SQL中引入了DateTime2。這解決了我的問題(一個淺層修復,但它工作);唉,如果可能的話,總是使用參數@ jon-skeet說。 – jamesbar2 2012-07-31 06:19:16
嘗試一件事首先,嘗試在該列中插入01/01/2012,因爲這可能是因爲錯誤的文化....這可能是MM/DD/YYYY或DD/MM/YYYY
首先嚐試這個01/01/2012,看看是否工作。
謝謝
對不起,我的第一個答案錯過了你的問題。嘗試使用標準參數系統添加參數。
command.CommandText =「INSERT INTO FooTable(FooDate)VALUES(@FooDate)」; command.Parameters.AddWithValue(「@ FooDate」,DateToUse.Date);
使用.Date將只返回對象的日期部分。這裏還有一個參考吧Date vs DateTime
如果您使用的是參數化查詢,我沒有任何麻煩,從ASP.NET日曆控件到包含DATE
類型的列SQL Server數據庫表中插入DateTime
。
使用這樣的事情:
// define INSERT statement - of course, yours will look quite different!
string insertStmt = "INSERT INTO dbo.DateTest(TheDate) VALUES(@DateValue);";
// set up connection and SqlCommand to do insert
using(SqlConnection conn = new SqlConnection("....your-connection-string-here...."))
using (SqlCommand cmd = new SqlCommand(insertStmt, conn))
{
// add the parameters - the @DateValue - to the SqlCommand object and
// define it's datatype (on the database) and set the value to be stored
cmd.Parameters.Add("@DateValue", SqlDbType.Date).Value = Calendar1.SelectedDate;
// open connection, execute command, close connection
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
感謝marc_s它爲我工作:) – Hardworker 2012-07-31 06:48:30
您可能要包括有關數據庫模式和您使用更新數據庫的C#的一些信息。但是,這聽起來像你沒有在你的數據庫中使用正確的列類型。 – 2012-07-31 05:52:59
我通常不會使用asp.net web表單,所以我需要知道:您是自己插入/更新日期,還是控制應該這樣做?問題可能與日期,地區設置一樣,日期的格式。 – 2012-07-31 05:56:11
感謝Layoric爲您的及時回覆其實我有兩個fileds在我的數據庫(sqlserver2008r2)表中的數據類型的日期現在從應用程序(.NET 4)端我想插入一些值在該表中,但在asp.net C#中有不日期數據類型我不得不使用日期時間datetype,但我得到這個錯誤..我不知道如何解決這個問題? – Hardworker 2012-07-31 06:00:24