From f9d6fcba4fc2f3020d87a5dfd59cc45bd906907e Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Fri, 31 Mar 2023 19:38:09 +0800 Subject: [PATCH] opt code #1477 --- .../FreeSql.Provider.Xugu.csproj | 10 +- Providers/FreeSql.Provider.Xugu/XuguUtils.cs | 2 +- .../FreeSql.Provider.Xugu/lib/XuguClient.dll | Bin 101888 -> 0 bytes .../FreeSql.Provider.Xugu/lib/XuguClient.xml | 1713 ----------------- .../XuguClient/net45}/XuguClient.dll | Bin .../XuguClient/net45}/XuguClient.xml | 0 .../XuguClient/netstandard2.0}/XuguClient.dll | Bin .../XuguClient/netstandard2.0}/XuguClient.xml | 0 8 files changed, 8 insertions(+), 1717 deletions(-) delete mode 100644 Providers/FreeSql.Provider.Xugu/lib/XuguClient.dll delete mode 100644 Providers/FreeSql.Provider.Xugu/lib/XuguClient.xml rename Providers/FreeSql.Provider.Xugu/{Driver-3.3.3.202212271548-RELEASE/framework => lib/XuguClient/net45}/XuguClient.dll (100%) rename Providers/FreeSql.Provider.Xugu/{Driver-3.3.3.202212271548-RELEASE/core => lib/XuguClient/net45}/XuguClient.xml (100%) rename Providers/FreeSql.Provider.Xugu/{Driver-3.3.3.202212271548-RELEASE/core => lib/XuguClient/netstandard2.0}/XuguClient.dll (100%) rename Providers/FreeSql.Provider.Xugu/{Driver-3.3.3.202212271548-RELEASE/framework => lib/XuguClient/netstandard2.0}/XuguClient.xml (100%) diff --git a/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj b/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj index a637ce53..12830967 100644 --- a/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj +++ b/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj @@ -1,7 +1,7 @@ - net60 + net70;net60;netstandard2.0 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 虚谷数据库 Ado.Net (XuguClient.dll) @@ -24,7 +24,11 @@ - + + + + Always + @@ -33,7 +37,7 @@ - lib\XuguClient.dll + lib\core\XuguClient.dll false diff --git a/Providers/FreeSql.Provider.Xugu/XuguUtils.cs b/Providers/FreeSql.Provider.Xugu/XuguUtils.cs index 6ea19420..573536b8 100644 --- a/Providers/FreeSql.Provider.Xugu/XuguUtils.cs +++ b/Providers/FreeSql.Provider.Xugu/XuguUtils.cs @@ -97,7 +97,7 @@ namespace FreeSql.Xugu var tp = _orm.CodeFirst.GetDbInfo(type)?.type; if (col != null) { - var dbtype = (XGDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText }); + var dbtype = (XGDbType?)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText }); if (dbtype != null) { if (col.DbPrecision != 0) ret.Precision = col.DbPrecision; diff --git a/Providers/FreeSql.Provider.Xugu/lib/XuguClient.dll b/Providers/FreeSql.Provider.Xugu/lib/XuguClient.dll deleted file mode 100644 index 1860eee15bc7cc35ab889854ca1a4f3e7c67a54a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101888 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 - - - XuguClient - - - - - 摘要: - 表示要对数据源执行的 SQL 语句或存储过程。 - - - - - 摘要: - 是否在下面的查询语句使用服务器端游标 - 默认是不启用游标 - add 2016-02-04 - - - - - 摘要: - 获取 System.Data.Common.DbParameter 对象的集合。 有关参数的更多信息,请参见 配置参数和参数数据类型。 - 返回结果: - SQL 语句或存储过程的参数。 - - - - - 摘要: - 开启批量执行多行参数绑定标志 - !=0 时 启动多行绑定功能 - - - - - 摘要: - 获取或设置针对数据源运行的文本命令。 - 返回结果: - 要执行的文本命令。 默认值为空字符串 ("")。 - - - - - 摘要: - 获取或设置在终止执行命令的尝试并生成错误之前的等待时间。 - - 返回结果: - 等待命令执行的时间(以秒为单位)。 - - - - - 摘要: - 获取或设置此 XGCommand 使用的 XGConnection。 - 返回结果: - 与数据源的连接。 - - - - - 摘要: - 释放由XGCommand 使用的托管资源,还可以选择释放非托管资源。 - - - - - - 摘要: - 获取或设置将在其中执行此 System.Data.Common.DbCommand 对象的 System.Data.Common.DbTransaction。 - 返回结果: - 要在其中执行 .NET Framework 数据提供程序的 Command 对象的事务。 默认值为 null 引用(在 Visual Basic - 中为 Nothing)。 - - - - - 摘要: - 指示或指定如何解释 System.Data.Common.DbCommand.CommandText 属性。 - 返回结果: - System.Data.CommandType 值之一。 默认值为 Text。 - - - - - 摘要: - 获取或设置一个值,该值指示此命令对象在自定义界面控件中是否可见。 - 返回结果: - 如果该命令对象应在控件中可见,则为 true;否则为 false。 - - - - - 摘要: - 获取或设置命令结果在由 System.Data.Common.DbDataAdapter 的 Update 方法使用时如何应用于 System.Data.DataRow。 - - 返回结果: - System.Data.UpdateRowSource 值之一。 如果该命令不是自动生成的,则默认值为 Both。 否则,默认值为 None。 - - - - - 摘要: - 尝试取消 XGCommand 的执行。 - - - - - 摘要: - 在数据源上创建该命令的准备好的(或已编译的)版本。 - 该功能目前不可用 - - - - - 摘要: - 对连接对象执行 SQL 语句。 - 返回结果: - 受影响的行数。 - 异常: - System.InValidConnectionException: - 指定的连接无效或者尚未打开。 - System.commandtextException: - CommandText不能为空 - - - - - 摘要: - 针对 System.Data.Common.DbCommand.Connection 执行 System.Data.Common.DbCommand.CommandText,并返回 - XGDataReader。 - - 返回结果: - System.Data.Common.DbDataReader 对象。 - - - - - 摘要: - 针对 System.Data.Common.DbCommand.Connection 执行 System.Data.Common.DbCommand.CommandText,并使用 - System.Data.CommandBehavior 值之一返回 System.Data.Common.DbDataReader。 - - 参数: - behavior: - System.Data.CommandBehavior 值之一。 - - 返回结果: - XGDataReader 对象。 - - - - - 摘要: - 获取或设置将在其中执行此 System.Data.Common.DbCommand 对象的 System.Data.Common.DbCommand.DbTransaction。 - 返回结果: - 要在其中执行 .NET Framework 数据提供程序的 Command 对象的事务。 默认值为 null 引用(在 Visual Basic - 中为 Nothing)。 - - - - - 摘要: - 获取或设置此 System.Data.Common.DbCommand 使用的 System.Data.Common.DbConnection。 - 返回结果: - 与数据源的连接。 - - - - - 摘要: - 获取 System.Data.Common.DbParameter 对象的集合。 - 返回结果: - SQL 语句或存储过程的参数。 - - - - - 摘要: - 创建 System.Data.Common.DbParameter 对象的新实例。 - 返回结果: - System.Data.Common.DbParameter 对象。 - - - - - 摘要: - 对连接执行命令文本。 - 参数: - behavior: - System.Data.CommandBehavior 的一个实例。 - 返回结果: - 表示该操作的任务。 - 异常: - System.Data.Common.DbException: - 执行命令文本时出现的一个错误。 - System.ArgumentException: - System.Data.CommandBehavior 值无效。 - - - - - 摘要: - 获取或设置用于打开连接的字符串。 - 返回结果: - 用来建立初始连接的连接字符串。该连接字符串的确切内容取决于此连接的特定数据源。默认值为空字符串。 - - - - - 摘要: - 获取描述连接状态的字符串。 - - 返回结果: - 连接的状态。 返回的字符串的格式取决于您正在使用的连接的特定类型。 - - - - - 摘要: - 获取在建立连接时终止尝试并生成错误之前所等待的时间。 - 返回结果: - 等待连接打开的时间(以秒为单位)。 默认值是由您正在使用的连接的特定类型确定的。 - - - - - 摘要: - 在连接打开之后获取当前数据库的名称,或者在连接打开之前获取连接字符串中指定的数据库名。 - 返回结果: - 当前数据库的名称或连接打开后要使用的数据库的名称。 默认值为空字符串。 - - - - - 摘要: - 获取要连接的数据库服务器的名称。 - 返回结果: - 要连接的数据库服务器的名称。 默认值为空字符串。 - - - - - 摘要: - 获取表示对象所连接到的服务器的版本的字符串。 - 返回结果: - 数据库的版本。 返回的字符串的格式取决于您正在使用的连接的特定类型。 - 异常: - System.InValidConnectionException: - 连接尚未处于活动状态 - System.InvalidOperationException: - 当返回的任务尚未完成,且调用 Overload:System.Data.Common.DbConnection.OpenAsync 后连接并未打开时,将调用 - System.Data.Common.DbConnection.ServerVersion。 - - - - - 摘要: - 开始数据库事务。 - - 返回结果: - 表示新事务的对象。 - - - - - 摘要: - 以指定的隔离级别启动数据库事务。 - - 参数: - isolationLevel: - 指定事务的隔离级别。 - - 返回结果: - 表示新事务的对象。 - - - - - 摘要: - 为打开的连接更改当前数据库。 - - 参数: - databaseName: - 为要使用的连接指定数据库名称。 - - - - - 摘要: - 当事件状态更改时发生。 - - - - - 摘要: - 创建并返回与当前连接关联的 System.Data.Common.DbCommand 对象。 - - 返回结果: - System.Data.Common.DbCommand 对象。 - - - - - 摘要: - 返回此 System.Data.Common.DbConnection 的数据源的架构信息。 - 此版本驱动不支持此功能 - 返回结果: - 包含架构信息的 System.Data.DataTable。 - - - - - 摘要: - 使用表示架构名称的指定字符串返回此 System.Data.Common.DbConnection 的数据源的架构信息。 - - 参数: - collectionName: - 指定要返回的架构的名称。 - - 返回结果: - 包含架构信息的 System.Data.DataTable。 - - 异常: - System.ArgumentException: - collectionName 被指定为空。 - - - - - 摘要: - 使用表示架构名称的指定字符串以及表示限制值的指定字符串数组返回此 System.Data.Common.DbConnection 的数据源的架构信息。 - - 参数: - collectionName: - 指定要返回的架构的名称。 - - restrictionValues: - 为请求的架构指定一组限制值。 - - 返回结果: - 包含架构信息的 System.Data.DataTable。 - - 异常: - System.ArgumentException: - collectionName 被指定为空。 - - - - - 摘要: - 使用 System.Data.Common.DbConnection.ConnectionString 所指定的设置打开数据库连接。 - - - - - 摘要: - 关闭与数据库的连接。 此方法是关闭任何已打开连接的首选方法。 - - 异常: - System.Data.Common.DbException: - 在打开连接时出现连接级别的错误。 - - - - - 摘要: - 释放资源 - - - - - 关闭服务器端游标 - - - - - 摘要: - 开始数据库事务。 - - 参数: - isolationLevel: - 指定事务的隔离级别。 - - 返回结果: - 表示新事务的对象。 - - - - - 摘要: - 获取此 System.Data.Common.DbConnection 的 System.Data.Common.DbProviderFactory。 - 返回结果: - 一组方法的集合,这些方法用于创建提供程序对数据源类的实现的实例。 - - - - - 摘要: - 创建并返回与当前连接关联的 System.Data.Common.DbCommand 对象。 - - 返回结果: - System.Data.Common.DbCommand 对象。 - - - - - 摘要: - 引发 System.Data.Common.DbConnection.StateChange 事件。 - - 参数: - stateChange: - 包含事件数据的 System.Data.StateChangeEventArgs。 - - - - - 如果连接字符串在设计器中可见,则为 true;否则为 false。默认值为 true。 - - - - - DbConnectionStringBuilder 是否具有固定大小。 - - - - - DbConnectionStringBuilder 是否为只读。 - - - - - 返回 一个 System.Collections.ICollection 内部包含System.Data.Common.DbConnectionStringBuilder 中的键。 - - - - - 摘要: - 获取或设置与指定的键关联的值。 - - 参数: - keyword: - 要获取或设置的项的键。 - - 返回结果: - 与指定的键相关联的值。 如果指定键未找到,尝试让其返回空引用(在 Visual Basic 中为 Nothing),并尝试设置为使用指定键创建新的元素。 - 传递 null 键(在 Visual Basic 中为 Nothing)将引发 System.ArgumentNullException。 分配一个删除键/值对的 - null 值。 - - 异常: - T:System.ArgumentNullException: - keyword 为空引用(在 Visual Basic 中为 Nothing)。 - - T:System.NotSupportedException: - 设置了该属性,但 System.Data.Common.DbConnectionStringBuilder 为只读。 - 或 - 设置了该属性,但 keyword - 不存在于集合中,且 System.Data.Common.DbConnectionStringBuilder 具有固定的大小。 - - - - - 摘要: - 将带有指定键和值的条目添加到 System.Data.Common.DbConnectionStringBuilder 中。 - - 参数: - keyword: - 要添加到 System.Data.Common.DbConnectionStringBuilder 的键。 - - value: - 指定键的值。 - - 异常: - T:System.ArgumentNullException: - keyword 为空引用(在 Visual Basic 中为 Nothing)。 - - T:System.NotSupportedException: - System.Data.Common.DbConnectionStringBuilder 为只读。 - 或 - System.Data.Common.DbConnectionStringBuilder - 具有固定的大小。 - - - - - 摘要: - 清除 System.Data.Common.DbConnectionStringBuilder 实例的内容。 - - 异常: - T:System.NotSupportedException: - System.Data.Common.DbConnectionStringBuilder 为只读。 - - - - - 摘要: - 清除关联的 System.Data.Common.DbConnectionStringBuilder 上的 System.ComponentModel.PropertyDescriptor - 对象集合。 - 清除关联的 PropertyDescriptor 上的 DbConnectionStringBuilder 对象集合。 - - 注解 - 设计器使用此方法清除 DbConnectionStringBuilder上的所有关联属性说明符。 - - - - - 摘要: - 确定 XGConnectionStringBuilder 是否包含特定键。 - - 参数: - keyword: - 要在 XGConnectionStringBuilder 中定位的键。 - - 返回结果: - 如果 XGConnectionStringBuilder 包含具有指定键的项,则为 true;否则为 false。 - - 异常: - T:System.ArgumentNullException: - keyword 为空引用(在 Visual Basic 中为 Nothing)。 - - - - - 摘要: - 将此 System.Data.Common.DbConnectionStringBuilder 对象中的连接信息与提供的对象中的连接信息进行比较。 - - 参数: - connectionStringBuilder: - 要与此 System.Data.Common.DbConnectionStringBuilder 对象进行比较的 System.Data.Common.DbConnectionStringBuilder。 - - 返回结果: - 如果两个 System.Data.Common.DbConnectionStringBuilder 对象中的连接信息生成等效的连接字符串,则为 true;否则为 - false。 - - - - - 摘要: - 使用有关此 Hashtable 的所有属性的信息,填充提供的 DbConnectionStringBuilder。 - - 参数 - propertyDescriptors - Hashtable - 使用有关此 Hashtable 的信息填充的 DbConnectionStringBuilder。 - - - - - 摘要: - 从 System.Data.Common.DbConnectionStringBuilder 实例中移除具有指定的键的项。 - - 参数: - keyword: - 要从此 System.Data.Common.DbConnectionStringBuilder 中的连接字符串移除的键/值对中的键。 - - 返回结果: - 如果该键存在于连接字符串中并已被移除,则为 true;如果该键不存在,则为 false。 - - 异常: - T:System.ArgumentNullException: - keyword 为 Null(在 Visual Basic 中为 Nothing) - - T:System.NotSupportedException: - System.Data.Common.DbConnectionStringBuilder 是只读,或 System.Data.Common.DbConnectionStringBuilder - 具有固定的大小。 - - - - - 摘要: - 指示此 XGConnectionStringBuilder 实例中是否存在指定的键。 - 参数 - keyword - String - 要在 XGConnectionStringBuilder 中定位的键。 - 返回 - Boolean - 如果 true 包含具有指定键的项,则为 XGConnectionStringBuilder;否则为 false。 - 注解 - 此方法的行为与 ContainsKey 方法完全相同。 - - - - - 摘要: - 返回与此 System.Data.Common.DbConnectionStringBuilder 关联的连接字符串。 - - 返回结果: - 当前 System.Data.Common.DbConnectionStringBuilder.ConnectionString 属性。 - - - - - 摘要: - 从此 System.Data.Common.DbConnectionStringBuilder 中检索与提供的键相对应的值。 - - 参数: - keyword: - 要检索的项的键。 - - value: - 与 key 对应的值。 - - 返回结果: - 如果在连接字符串中找到 keyword,则为 true,否则为 false。 - - 异常: - T:System.ArgumentNullException: - keyword 包含一个 null 值(在 Visual Basic 中为 Nothing)。 - - - - - 摘要: - 用一个 SQL SELECT 语句和一个 XuguCsConnecion初始化 XGDataAdapter 类的新实例。 - selectCommandText: 一个字符串,表示将由 XGDataAdapter 的 XGDataAdapter.SelectCommand 属性使用的 SQL SELECT 语句或存储过程。 - selectConnection: 表示连接的 XGConnection。 - - - - - 摘要: - 使用 SQL SELECT 语句和连接字符串初始化 XGDataAdapter类的新实例。 - selectCommandText: 一个字符串,表示将由 XGDataAdapter 的 XGDataAdapter.SelectCommand 属性使用的 SQL SELECT 语句或存储过程。 - selectConnectionString: 连接字符串。 - - - - - 从查询SQL中获取完整表名(模式名.表名) - - 查询SQL - 表名 或 模式名.表名 - - - - 摘要: - 获取一个值,该值指示当前行的嵌套深度。 - - 返回结果: - 当前行的嵌套深度。 - - - - - 摘要: - 获取当前行中的列数。 - - 返回结果: - 当前行中的列数。 - - 异常: - System.NotSupportedException: - 没有对 SQL Server 实例的当前连接。 - - - - - 摘要: - 获取一个值,它指示此 XGDataReader是否包含一个或多个行。 - - 返回结果: - 如果 XGDataReader 包含一行或多行,则为 true;否则为 false。 - 异常: - System.InvalidOperationException: - XGDataReader 是关闭的。 - - - - - 摘要: - 获取一个值,该值指示 XGDataReader 是否已关闭。 - - 返回结果: - 如果 XGDataReader 已关闭,则为 true;否则为 false。 - - 异常: - System.InvalidOperationException: - XGDataReader 是关闭的。 - - - - - 摘要: - 通过执行 SQL 语句获取更改、插入或删除的行数。 - - 返回结果: - 更改、插入或删除的行数。 对于 SELECT 语句为 -1;如果没影响任何行或该语句失败,则为 0。 - 异常: - System.InvalidOperationException: - XGDataReader 是关闭的。 - - - - - 摘要: - 获取指定列的作为 System.Object 的实例的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.IndexOutOfRangeException: - 传递的索引位于 0 至 System.Data.IDataRecord.FieldCount 的范围之外。 - - - - - 摘要: - 获取指定列的作为 System.Object 的实例的值。 - - 参数: - name: - 列的名称。 - - 返回结果: - 指定列的值。 - - 异常: - System.IndexOutOfRangeException: - 未找到具有指定名称的列。 - - - - - 摘要: - 关闭 XGDataReader 对象。 - - - - - 摘要: - 释放由 XGDataReader 类的当前实例占用的所有资源。 - - - - - 摘要: - 获取指定列的布尔值形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的字节形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 从指定列读取一个字节流(从 dataOffset 指示的位置开始),读到缓冲区中(从 bufferOffset 指示的位置开始)。 - - 参数: - ordinal: - 从零开始的列序号。 - - dataOffset: - 行中的索引,从其开始读取操作。 - - buffer: - 作为数据复制目标的缓冲区。 - - bufferOffset: - 具有作为数据复制目标的缓冲区的索引。 - - length: - 最多读取的字符数。 - - 返回结果: - 读取的实际字节数。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的单个字符串形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 从指定列读取一个字符流,从 dataOffset 指示的位置开始,读到缓冲区中,从 bufferOffset 指示的位置开始。 - - 参数: - ordinal: - 从零开始的列序号。 - - dataOffset: - 行中的索引,从其开始读取操作。 - - buffer: - 作为数据复制目标的缓冲区。 - - bufferOffset: - 具有作为数据复制目标的缓冲区的索引。 - - length: - 最多读取的字符数。 - - 返回结果: - 读取的实际字符数。 - - - - - 摘要: - 获取指定列的数据类型的名称。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 表示数据类型的名称的字符串。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 返回被请求的列序号的 System.Data.Common.DbDataReader 对象。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - System.Data.Common.DbDataReader 对象。 - - - - - 摘要: - 获取指定列的 System.DateTime 对象形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的 System.Decimal 对象形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的双精度浮点数形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 返回一个 System.Collections.IEnumerator,可用于循环访问数据读取器中的行。 - - 返回结果: - 一个 System.Collections.IEnumerator,可用于循环访问数据读取器中的行。 - - - - - 摘要: - 获取指定列的数据类型。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的数据类型。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的单精度浮点数形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的全局唯一标识符 (GUID) 形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的 16 位有符号整数形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的 32 位有符号整数形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的 64 位有符号整数形式的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - System.IndexOutOfRangeException: - 指定的列序号i无效 - - - - - 摘要: - 给定了从零开始的列序号时,获取列的名称。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的名称。 - - - - - 摘要: - 获取表的名称。 - 返回结果: - 表的名称。 - - - - - 摘要: - 给定列名称时,获取列序号。 - - 参数: - name: - 列的名称。 - - 返回结果: - 从零开始的列序号。 - - 异常: - System.IndexOutOfRangeException: - 指定的名称不是有效的列名称。 - - - - - 摘要: - 返回一个 System.Data.DataTable,它描述 System.Data.Common.DbDataReader 的列元数据。 - - 返回结果: - 一个描述列元数据的 System.Data.DataTable。 - - 异常: - System.InvalidOperationException: - XGDataReader 是关闭的。 - - - - - 摘要: - 获取指定列的作为 System.String 的实例的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的作为 XGClob 的实例的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的作为 XGBlob 的实例的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - 异常: - System.InvalidCastException: - 指定的强制转换无效。 - - - - - 摘要: - 获取指定列的作为 System.Object 的实例的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 指定列的值。 - - - - - 摘要: - 使用当前行的列值来填充对象数组。 - - 参数: - values: - 要将特性列复制到其中的 System.Object 数组。 - - 返回结果: - 数组中 System.Object 的实例的数目。 - - - - - 摘要: - 获取一个值,该值指示列中是否包含不存在的或已丢失的值。 - - 参数: - ordinal: - 从零开始的列序号。 - - 返回结果: - 如果指定的列与 System.DBNull 等效,则为 true;否则为 false。 - - - - - 摘要: - 读取批处理语句的结果时,使读取器前进到下一个结果。 - - 返回结果: - 如果存在多个结果集,则为 true;否则为 false。 - - - - - 摘要: - 将读取器XGDataReader 前进到结果集中的下一个记录。 - - 返回结果: - 如果存在多个行,则为 true;否则为 false。 - - - - - 摘要: - 释放由 XGDataReader 使用的托管资源,还可以选择释放非托管资源。 - - 参数: - disposing: - 若要释放托管资源和非托管资源,则为 true;若要仅释放非托管资源,则为 false。 - - - - - 无任何值(DBTYPE_EMPTY)。 - - - - - 布尔类型,其取值为:true、false或unknown。 - - - - - 固定长度字符串(SQL_CHAR)。它映射到 System.String。 - - - - - 8 位带符号的整数(DBTYPE_I1)。它映射到 System.SByte。 - - - - - 确切数值,其精度为 5,小数位数为 0(有符号:-32,768 <= n <= 32,767,没有符号:0 <= n <= 65,535)(SQL_SMALLINT)。它映射到 System.Int16。 - - - - - 确切数值,其精度为 10 和小数位数 0(有符号:-2[31] <= n <= 2[31] - 1,没有符号:0 <= n <= 2[32] - 1)(SQL_INTEGER)。它映射到 System.Int32。 - - - - - 确切数值,其精度为 19(如果有符号)或 20(如果没有符号),小数位数为 0(有符号:-2[63] <= n <= 2[63] - 1,没有符号:0 <= n <= 2[64] - 1)(SQL_BIGINT)。它映射到 System.Int64。 - - - - - 有符号的近似数值,其二进制精度为 24(零或绝对值为 10[-38] 到 10[38])(SQL_REAL)。它映射到 System.Single。 - - - - - 有符号的确切数值,其精度为 p,小数位数为 s,其中 1 <= p <= 15 并且 s <= p (SQL_NUMERIC)。该数据类型将映射到System.Decimal。 - - - - - 有符号的近似数值,其二进制精度为 53(零或绝对值为 10[-308] 到 10[308])(SQL_DOUBLE)。它映射到 System.Double。 - - - - - 日期数据,存储为双精度型(DBTYPE_DATE)。整数部分是自 1899 年 12 月 30 日以来的天数,而小数部分是不足一天的部分。它映射到System.DateTime。 - - - - - 格式为 yyyymmdd 的日期数据(SQL_TYPE_DATE)。它映射到 System.DateTime。 - - - - - 格式为 hhmmss 的日期数据(SQL_TYPE_TIMES)。它映射到 System.DateTime。 - - - - - 变长流字符串(SQL_CHAR)。它映射到 System.String。 - - - - - 二进制数据流 (SQL_BINARY)。它映射到 System.Byte 类型的 System.Array。 - - - - - 变长二进制。由用户设置该最大值 (SQL_VARBINARY)。它映射到 System.Byte 类型的 System.Array。 - - - - - 游标。可作为存储过程的输出参数类型和存储函数的返回值类型。 - - - - - 最大长度因数据源而定 (SQL_LONGVARCHAR)。它映射到 System.String。 - - - - - 长的二进制值(BLOB)。它映射到 System.Byte 类型的 System.Array。 - - - - - 根据DbType获取对应的XGDbType。 - - DbType - XGDbType - - - - 根据XGDbType获取对应的DbType。 - - XGDbType - DbType - - - - 根据值的Type和指定的XGDbType共同决定以获取对应的XGDbType。 - - 值的Type - XGDbType - 对应的XGDbType - - - - 根据数组类型获取对应的XGDbType。 - - 数组的Type - 参数的Type - 对应的XGDbType - - - - 用于参数绑定的类。 - - - - - 摘要: - 获取或设置参数的 System.Data.DbType。 - - 返回结果: - System.Data.DbType 值之一。 默认值为 System.Data.DbType.String。 - - 异常: - System.ArgumentException: - 该属性未设置为有效的 System.Data.DbType。 - - - - - 摘要: - 获取或设置该参数的值。 - - 返回结果: - 一个 System.Object,它是该参数的值。 默认值为 null。 - - - - - 创建作为当前实例副本的新对象。 - - 作为此实例副本的新对象。 - - - - 摘要: - 获取或设置一个值,该值指示参数是只可输入、只可输出、双向还是存储过程返回值参数。 - - 返回结果: - System.Data.ParameterDirection 值之一。 默认值为 Input。 - - 异常: - System.ArgumentException: - 该属性未设置为有效的 System.Data.ParameterDirection 值之一。 - - - - - 摘要: - 获取或设置列中数据的最大大小(以字节为单位)。 - - 返回结果: - 列中数据的最大大小(以字节为单位)。 默认值是从参数值推导出的。 - - - - - 无参的XGParameters构造方法。 - - - - - 通过参数名和参数值构造XGParameters对象。 - - 参数的名 - 参数的值 - - - - 通过XGParameters对象构造新的XGParameters副本。 - - 源XGParameters对象 - - - - 通过参数名和虚谷数据库的类型构造XGParameters对象。 - - 参数的名 - 虚谷数据库的类型 - - - - 通过参数名、虚谷数据库的类型和参数大小构造XGParameters对象。 - - 参数的名 - 虚谷数据库的类型 - 参数值所占字节大小 - - - - 构造XGParameters对象。 - - 参数的名 - 虚谷数据库的类型 - 参数值所占字节大小 - 参数的方向:Input,Output,InputOutput或ReturnValue - 无意义 - 无意义 - 无意义 - 无意义 - 无意义 - 参数的值 - - - - 摘要: - 获取或设置 System.Data.Common.DbParameter 的名称。 - - 返回结果: - System.Data.Common.DbParameter 的名称。 默认值为空字符串 ("")。 - - - - - 摘要: - 获取或设置源列的名称,该源列映射到 System.Data.DataSet 并用于加载或返回 System.Data.Common.DbParameter.Value。 - - 返回结果: - 映射到 System.Data.DataSet 的源列的名称。 默认值为空字符串。 - - - - - 摘要: - 设置或获取一个值,该值指示源列是否可以为 null。 这使得 System.Data.Common.DbCommandBuilder 能够正确地为可以为 - null 的列生成 Update 语句。 - - 返回结果: - 如果源列可以为 null,则为 true;如果不可以为 null,则为 false。 - - - - - 摘要: - 获取或设置一个值,该值指示参数是否接受空值。 - - 返回结果: - 如果接受 null 值,则为 true;否则为 false。 默认值为 false。 - - - - - 摘要: - 获取或设置在加载 System.Data.Common.DbParameter.Value 时使用的 System.Data.DataRowVersion。 - - 返回结果: - System.Data.DataRowVersion 值之一。 默认值为 Current。 - - 异常: - System.ArgumentException: - 该属性未设置为 System.Data.DataRowVersion 值之一。 - - - - - 摘要: - 将 DbType 属性重置为其原始设置。 - 此版本驱动不支持此功能 - - - - - XGParameters枚举器类。 - - - - - 枚举器中的当前元素。 - - - - - 构造方法。 - - 包含XGParameters的List对象 - - - - 移动到枚举器中的下一个元素。 - - 成功移动到下一元素返回True,否则返回False - - - - 将枚举器的位置移动到集合的第一个元素之前。 - - - - - 获取当前枚举器 - - 当前的枚举器 - - - - XGParameters集合类。 - - - - - 集合所拥有的元素个数。 - - - - - 构造XGParameterCollection对象。 - - - - - 向集合中添加XGParameters对象。 - - 需要被添加的XGParameters对象 - 被添加的元素在集合中的位置 - - - - 向集合中添加XGParameters对象。 - - 需要被添加的XGParameters对象 - 被添加成功的XGParameters对象 - - - - 向集合中添加一个参数名为parameterName,参数值为value的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值 - 当前的XGParameters对象 - - - - 向集合中添加一个参数名为parameterName,参数值类型为type的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值在虚谷数据库中的类型 - 当前的XGParameters对象 - - - - 向集合中添加一个参数名为parameterName,参数值类型为type,参数值所占大小为size的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值在虚谷数据库中的类型 - XGParameters对象的参数值所占字节数 - 当前的XGParameters对象 - - - - 向集合中添加一个参数名为parameterName,参数值类型为type,参数方向为direction的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值在虚谷数据库中的类型 - XGParameters对象的参数方向,其取值为:Input,Output,InputOutput或ReturnValue - 当前的XGParameters对象 - - - - 向集合中添加一个参数名为parameterName,参数值类型为type,参数值为value,参数方向为direction的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值在虚谷数据库中的类型 - XGParameters对象的参数值 - XGParameters对象的参数方向,其取值为:Input,Output,InputOutput或ReturnValue - 当前的XGParameters对象 - - - - 向集合中添加一个参数名为parameterName,参数值类型为type,参数值大小为size,参数值为value,参数方向为direction的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值在虚谷数据库中的类型 - 参数值所占字节大小 - XGParameters对象的参数值 - XGParameters对象的参数方向,其取值为:Input,Output,InputOutput或ReturnValue - - - - - 将一个Array中包含的多个XGParameters对象批量添加到集合中。 - - 包含多个XGParameters对象的Array对象 - - - - 向集合中添加一个参数名为parameterName,参数值为value的XGParameters对象。 - - XGParameters对象的参数名 - XGParameters对象的参数值 - 当前的XGParameters对象 - - - - 从集合中移除所有的XGParameters对象。 - - - - - 在集合中索引为index处插入一个参数值为value的XGParameters对象。 - - 插入的位置 - 被插入的XGParameters对象的参数值 - - - - 从集合中移除索引为index的XGParameters对象。 - - 需要被移除的XGParameters对象的索引 - - - - 从集合中移除参数名为parameterName的XGParameters对象。 - - 参数名 - - - - 当前集合中是否包含参数值为value的XGParameters对象。 - - XGParameters对象的参数值 - 包含返回True,否则返回False - - - - 当前集合中是否包含参数名为parameterName的XGParameters对象。 - - XGParameters对象的参数名 - 包含返回True,否则返回False - - - - 获取枚举器。 - - 当前集合的枚举器 - - - - 获取参数值为value的XGParameters对象在集合中的索引。返回-1表示此集合中不存在参数值为value的XGParameters对象。 - - 所查找的XGParameters对象的参数值 - 参数值为value的XGParameters对象在集合中的索引 - - - - 获取参数名为parameterName的XGParameters对象在集合中的索引。返回-1表示此集合中不存在参数名为parameterName的XGParameters对象。 - - 所查找的XGParameters对象的参数名 - 参数名为parameterName的XGParameters对象在集合中的索引 - - - - 根据索引从集合中获取XGParameters对象。 - - 索引值,从零开始 - 该索引的元素,若需使用XGParameters需强转 - - - - 根据XGParameters参数名从集合中获取DbParameters对象。 - - XGParameters参数名 - 目标元素,若需使用XGParameters需强转 - - - - 修改集合中索引为index的元素。 - - 索引值,从零开始 - 新的XGParameters对象 - - - - 修改集合中参数名为parameterName的元素。 - - XGParameters对象的参数名 - 新的XGParameters对象 - - - - 从集合中移除指定的XGParameters对象。 - - 需要被移除的XGParameters对象 - - - diff --git a/Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/framework/XuguClient.dll b/Providers/FreeSql.Provider.Xugu/lib/XuguClient/net45/XuguClient.dll similarity index 100% rename from Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/framework/XuguClient.dll rename to Providers/FreeSql.Provider.Xugu/lib/XuguClient/net45/XuguClient.dll diff --git a/Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/core/XuguClient.xml b/Providers/FreeSql.Provider.Xugu/lib/XuguClient/net45/XuguClient.xml similarity index 100% rename from Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/core/XuguClient.xml rename to Providers/FreeSql.Provider.Xugu/lib/XuguClient/net45/XuguClient.xml diff --git a/Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/core/XuguClient.dll b/Providers/FreeSql.Provider.Xugu/lib/XuguClient/netstandard2.0/XuguClient.dll similarity index 100% rename from Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/core/XuguClient.dll rename to Providers/FreeSql.Provider.Xugu/lib/XuguClient/netstandard2.0/XuguClient.dll diff --git a/Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/framework/XuguClient.xml b/Providers/FreeSql.Provider.Xugu/lib/XuguClient/netstandard2.0/XuguClient.xml similarity index 100% rename from Providers/FreeSql.Provider.Xugu/Driver-3.3.3.202212271548-RELEASE/framework/XuguClient.xml rename to Providers/FreeSql.Provider.Xugu/lib/XuguClient/netstandard2.0/XuguClient.xml