[研究]ASP.NET,WebForm,參數化查詢 必須有參數 '@myDate',但未提供。(實際上有提供)
2024-04-18
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
********************************************************************************
Default.aspx.cs 中某行
command.Parameters.AddWithValue("@myDate", null); |
如果給日期,正確執行;如果給空字串 "",輸入變成 1900-1-1,給 null 執行後出現錯誤:
參數化查詢 必須有參數 '@myDate',但未提供。
但是SQL Server 資料庫中,該欄位是允許 NULL 的。
********************************************************************************
改成下面後解決
Default.aspx.cs
command.Parameters.AddWithValue("@myDate", DBNull.Value); |
********************************************************************************
C#
【DateTime】
最大值:SQL Server中datetime類型的最大值是9999年12月31日 23:59:59.997,你可以在C#中表示為:DateTime sqlServerMaxDateTime = DateTime.MaxValue;
最小值:SQL Server中datetime類型的最小值是1753年1月1日 00:00:00.000,你可以在C#中表示為:DateTime sqlServerMinDateTime = DateTime.MinValue;
【Date】
最大值:SQL Server中date類型的最大值是9999年12月31日,你可以在C#中表示為:
DateTime sqlServerMaxDate = DateTime.MaxValue.Date;
最小值:SQL Server中date類型的最小值是0001年1月1日,你可以在C#中表示為:
DateTime sqlServerMinDate = DateTime.MinValue.Date;
********************************************************************************
T-SQL
datetime類型的最大值:SELECT CAST('9999-12-31 23:59:59.997' AS datetime) AS MaxDateTime;
datetime類型的最小值:SELECT CAST('1753-01-01 00:00:00.000' AS datetime) AS MinDateTime;
date類型的最大值:SELECT CAST('9999-12-31' AS date) AS MaxDate;
date類型的最小值:SELECT CAST('0001-01-01' AS date) AS MinDate;
(完)
相關
沒有留言:
張貼留言