Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancing the SqlDbType with Json #103985

Merged
merged 5 commits into from
Jul 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/libraries/System.Data.Common/ref/System.Data.Common.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1656,6 +1656,7 @@ public enum SqlDbType
Time = 32,
DateTime2 = 33,
DateTimeOffset = 34,
Json = 35,
}
public sealed partial class StateChangeEventArgs : System.EventArgs
{
Expand Down
149 changes: 147 additions & 2 deletions src/libraries/System.Data.Common/src/System/Data/SqlDbType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,185 @@

namespace System.Data
{
// Specifies the SQL Server data type.
/// <summary>
/// Specifies SQL Server-specific data type of a field, property, for use in a <see cref="T:Microsoft.Data.SqlClient.SqlParameter" />.
/// </summary>
public enum SqlDbType
{
// A 64-bit signed integer.
/// <summary>
/// <see cref="long" />. A 64-bit signed integer.
/// </summary>
BigInt = 0,

/// <summary>
/// <see cref="Array"/> of type <see cref="byte"/>. A fixed-length stream of binary data ranging between 1 and 8,000 bytes.
/// </summary>
Binary = 1,

/// <summary>
/// <see cref="bool"/>. An unsigned numeric value that can be 0, 1, or <see langword="null"/>
/// </summary>
Bit = 2,

/// <summary>
/// <see cref="string"/>. A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters.
/// </summary>
Char = 3,

/// <summary>
/// <see cref="System.DateTime"/>. Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds
/// </summary>
DateTime = 4,

/// <summary>
/// <see cref="decimal"/>. A fixed precision and scale numeric value between -10 <sup>38</sup> -1 and 10 <sup>38</sup> -1.
/// </summary>
Decimal = 5,

/// <summary>
/// <see cref="double"/>. A floating point number within the range of -1.79E +308 through 1.79E +308.
/// </summary>
Float = 6,

/// <summary>
/// <see cref="Array"/> of type <see cref="byte"/>. A variable-length stream of binary data ranging from 0 to 2 <sup>31</sup> -1
/// (or 2,147,483,647) bytes.
/// </summary>
Image = 7,

/// <summary>
/// <see cref="int"/>. A 32-bit signed integer.
/// </summary>
Int = 8,

/// <summary>
/// <see cref="decimal"/>. A currency value ranging from -2 <sup>63</sup> (or -9,223,372,036,854,775,808) to 2 <sup>63</sup>
/// -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit.
/// </summary>
Money = 9,

/// <summary>
/// <see cref="string"/>. A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters.
/// </summary>
NChar = 10,

/// <summary>
/// <see cref="string"/>. A variable-length stream of Unicode data with a maximum length of 2 <sup>30</sup> - 1
/// (or 1,073,741,823) characters.
/// </summary>
NText = 11,

/// <summary>
/// <see cref="string"/>. A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit
/// conversion fails if the string is greater than 4,000 characters. Explicitly set the object when working with strings
/// longer than 4,000 characters. Use <see cref="F:System.Data.SqlDbType.NVarChar"/> when the database column is
/// <see langword="nvarchar(max)"/>.
/// </summary>
NVarChar = 12,

/// <summary>
/// <see cref="float"/>. A floating point number within the range of -3.40E +38 through 3.40E +38.
/// </summary>
Real = 13,

/// <summary>
/// <see cref="Guid"/>. A globally unique identifier (or GUID).
/// </summary>
UniqueIdentifier = 14,

/// <summary>
/// <see cref="System.DateTime"/>. Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute.
/// </summary>
SmallDateTime = 15,

/// <summary>
/// <see cref="short"/>. A 16-bit signed integer.
/// </summary>
SmallInt = 16,

/// <summary>
/// <see cref="decimal"/>. A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit.
/// </summary>
SmallMoney = 17,

/// <summary>
/// <see cref="string"/>. A variable-length stream of non-Unicode data with a maximum length of 2 <sup>31</sup> -1 (or 2,147,483,647) characters.
/// </summary>
Text = 18,

/// <summary>
/// <see cref="System.Array"/> of type <see cref="byte"/>. Automatically generated binary numbers, which are guaranteed to be unique within a database. <see langword="timestamp"/> is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes.
/// </summary>
Timestamp = 19,

/// <summary>
/// <see cref="byte"/>. An 8-bit unsigned integer.
/// </summary>
TinyInt = 20,

/// <summary>
/// <see cref="System.Array"/> of type <see cref="byte"/>. A variable-length stream of binary data ranging between 1 and 8,000 bytes.
/// Implicit conversion fails if the byte array is greater than 8,000 bytes. Explicitly set the object when working with byte arrays
/// larger than 8,000 bytes.
/// </summary>
VarBinary = 21,

/// <summary>
/// <see cref="string"/>. A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters.
/// Use <see cref="F:System.Data.SqlDbType.VarChar"/> when the database column is <see langword="varchar(max)"/>.
/// </summary>
VarChar = 22,

/// <summary>
/// <see cref="object"/>. A special data type that can contain numeric, string, binary, or date data as well as the SQL Server values Empty and Null,
/// which is assumed if no other type is declared.
/// </summary>
Variant = 23,

/// <summary>
/// An XML value. Obtain the XML as a string using the <see cref="M:Microsoft.Data.SqlClient.SqlDataReader.GetValue(System.Int32)"/> method or
/// <see cref="P:System.Data.SqlTypes.SqlXml.Value"/> property, or as an <see cref="T:System.Xml.XmlReader"/> by calling the
/// <see cref="M:System.Data.SqlTypes.SqlXml.CreateReader"/> method.
/// </summary>
Xml = 25,

/// <summary>
/// A SQL Server user-defined type (UDT).
/// </summary>
Udt = 29,

/// <summary>
/// A special data type for specifying structured data contained in table-valued parameters.
/// </summary>
Structured = 30,

/// <summary>
/// Date data ranging in value from January 1,1 AD through December 31, 9999 AD.
/// </summary>
Date = 31,

/// <summary>
/// Time data based on a 24-hour clock. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.
/// Corresponds to a SQL Server <see langword="time"/> value.
/// </summary>
Time = 32,

/// <summary>
/// Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD.
/// Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.
/// </summary>
DateTime2 = 33,

/// <summary>
/// Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD.
/// Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range
/// is -14:00 through +14:00.
/// </summary>
DateTimeOffset = 34,

/// <summary>
/// A JSON value.
/// </summary>
Json = 35,
saurabh500 marked this conversation as resolved.
Show resolved Hide resolved
}
}
Loading