[英]String was not recognized as a valid DateTime in C# asp.net
我想從Excel單元格導入日期值。 具有“ 2013年10月10日”格式的單元格值。 我想將其轉換為日期時間數據類型。 我的代碼獲取錯誤“字符串未被識別為有效的日期時間”
//碼
OleDbCommand olecmd = new OleDbCommand("select * from [Sheet1$]", olecon);
OleDbDataReader olerdr = olecmd.ExecuteReader();
while (olerdr.Read())
{
deldate = olerdr.GetValue(13).ToString();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["irisdb"].ConnectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand("procdamandrugs", con);
cmd.CommandType = CommandType.StoredProcedure;
DateTime dt = DateTime.ParseExact(deldate, "MM/dd/yyyy", CultureInfo.InvariantCulture);//getting error in this line
SqlParameter par9 = new SqlParameter();
par9.ParameterName = "@deleffdate";
par9.SqlDbType = SqlDbType.DateTime;
par9.Value = dt;
cmd.Parameters.Add(par9);
cmd.ExecuteNonQuery();
}
}
有人幫我解決這個問題。
具有“ 2013年10月10日”格式的單元格值。
您在ParseExact中輸入的格式錯誤,與您傳遞的日期字符串不匹配。 您需要的格式與您給的格式不同。 對於一天,您需要dd
,對於月份,您需要MMMM
,對於年份,您需要yyyy
並且必須給定空格作為分隔符。
值得使用MSDN上的“ 自定義日期和時間格式字符串”一文 ,以使用字符串格式進行日期轉換。
DateTime dt = DateTime.ParseExact(deldate, "dd MMMM yyyy", CultureInfo.InvariantCulture);
我建議在構造SQL對象之前利用DateTime.TryParse方法。 與數據庫進行對話之前,請確保您輸入的質量較高。
http://msdn.microsoft.com/zh-CN/library/ch92fbc1%28v=vs.110%29.aspx
下面是我自己的asp.net應用程序代碼示例
// Validation
DateTime dtOut_StartDate;
if (!DateTime.TryParse(txtStartDate.Text, out dtOut_StartDate))
{
Message = "Start date is not a valid format.";
txtStartDate.CssClass = ErrorCssClass.TextBox;
txtStartDate.Focus();
return false;
}
從右下方選擇日期時間設置,然后從此處更改格式...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.