如果系统date时间格式发生更改,则在SQL Server中保存错误
我正在使用C#应用程序将数据从Excel文件导入到SQL Server中。 我的工作表包含一些date时间列。
无论什么格式我的系统date时间设置为( dd/mm/yyyy
或mm/dd/yyyy
或任何其他格式)以及我的date时间值是什么格式在Excel表中,我将能够正确地加载它在sql服务器没有任何错误。 目前如果我的系统date时间是mm/dd/yyyy
,则会保存数据,但如果将系统格式更改为dd/mm/yyyy
,保存操作将失败。
保存function: –
public int InsertSetting(DataRow drow) { int Result = 0; try { OdbcParameter[] p = new OdbcParameter[9]; p[0] = new OdbcParameter("@ID", drow["ID"].ToString().Trim()); p[1] = new OdbcParameter("@ComID", drow["CompanyID"].ToString().DbNullIfNullOrEmpty()); p[2] = new OdbcParameter("@Mod", drow["ModuleID"].ToString().DbNullIfNullOrEmpty()); p[3] = new OdbcParameter("@Stat", drow["Status"].ToString()); p[4] = new OdbcParameter("@EnterBy", drow["EnterBy"].ToString().DbNullIfNullOrEmpty()); p[5] = new OdbcParameter("@EnterDate", (drow["EnterDate"].ToString() == "" || drow["EnterDate"].ToString() == "NULL") ? (object)DBNull.Value : drow["EnterDate"].ToString()); p[6] = new OdbcParameter("@UpdateBy", drow["UpdateBy"].ToString().DbNullIfNullOrEmpty()); p[7] = new OdbcParameter("@UpdateDate", (drow["UpdateDate"].ToString() == "" || drow["UpdateDate"].ToString() == "NULL") ? (object)DBNull.Value : drow["UpdateDate"].ToString()); p[8] = new OdbcParameter("@Mode", 7); Result = //calling stored procedure to save data } catch (Exception ex) { MessageBox.Show(ex.Message, "InsertSetting()"); } return Result; }
读取inputdate并以mm/dd/yyyy
格式更新。
我无法理解到底是什么问题,以及如何使用系统date时间格式。
请帮帮我。 我卡住了..
提前致谢
如果drow["EnterDate"]
和drow["EnterDate"]
drow["UpdateDate"]
是DateTime,则可以在ToString()
input自定义格式。
为了通过ADO.net将date保存到SQL Server中,虽然我承认这不是一种正式的方式,但我发现将它格式化为ToString("yyyy-MM-dd HH:mm:ss")
总是比较安全的,不pipe本地/服务器date时间格式设置。