2024年4月18日 星期四

[研究]ASP.NET,WebForm,參數化查詢 必須有參數 '@myDate',但未提供。(實際上有提供)

[研究]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;


(完)

相關

沒有留言:

張貼留言