有关 SqlDataReader.GetSchemaTable() 方法: 探讨问题????请给予你宝贵的意见

tenny tenny 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
功能:返回一个 DataTable,它描述 SqlDataReader 的列元数据。
方法:public virtual DataTable GetSchemaTable();
返回参数:一个描述列元数据的 DataTable。
备注:对于 GetSchemaTable 方法,将按以下顺序返回关于每个列的元数据:


问题:对于上诉的列的元数据值的问题?
请问:
1). ProviderType 参数的类型是Int32吗?它返回的数值1,2,3,4....分别代表什么数据类型?他与java 方法----resultMeta.getColumnType(i+1)从数据库取到的值是一样的吗?

2). NumericPrecision 参数如果 ProviderType 是数值数据类型,则它是列的最大精度。精度取决于列的定义。如果 ProviderType 不是数值数据类型,则它为空值。那些数据类型是数值数据类型,列的最大精度怎么得到?也是从数据库取得的吗?

3). NumericScale 如果 ProviderType 是 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,则为小数点右侧的位数。否则,它为空值。请问小数点右侧的位数,是指什么数的小数点位数?

下面是我的一个sample:
using System;
using System.Xml;
using System.Xml.XPath;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Text;
using System.IO;
using System.Data.SqlTypes;
using System.Security.Permissions;

class test1{
public static void Main()
{
string sql = "SELECT * FROM TestSql";
string constr = "Data Source=localhost;Initial Catalog=TestADO;uid=sa;pwd=;";
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand(sql,con);
con.Open();
SqlParameter parm = new SqlParameter("@Name", DbType.String);
parm.DbType = DbType.String;
parm.Direction = ParameterDirection.Input;
parm.Value = "maowen";
cmd.Parameters.Add(parm);
SqlDataReader rdr;
rdr = cmd.ExecuteReader();
int results = 0;
do {
results++;

DataTable dt = rdr.GetSchemaTable();
foreach (DataRow schemaRow in dt.Rows) {
for (int i=0;i<dt.Columns.Count;i++)
if((i==3) || (i==4) || (i==7) || (i==14)){
Console.WriteLine(i + ": " + dt.Columns[i].ColumnName + " = " + schemaRow[dt.Columns[i]]);
}
Console.WriteLine();
}
} while(rdr.NextResult());
con.Close();
}

}

运行结果:

3: NumericPrecision = 255
4: NumericScale = 255
7: BaseServerName =
14: ProviderType = 3

3: NumericPrecision = 255
4: NumericScale = 255
7: BaseServerName =
14: ProviderType = 3

其数据库表的设计参数为:
TableName=TestSql
列名 数据类型 长度 是否为空
Name char 10 是
Photo char 110 是
...全文

相关推荐

SqlDataReader 成员

SqlDataReader 成员 请参见 方法 属性 显式接口实现 全部折叠 全部展开 成员选项:全部显示 成员选项:已筛选 包括继承的成员 包括受保护的成员 仅 .NET Compact Framework 成员 提供一种从 SQL Server 数据库读取行的只进流的方式。无法继承此类

xiexuehui1987

关于值类型与列类型不匹配,所需类型是 DataRow的解决方案

关于值类型与列类型不匹配,所需类型是 DataRow的解决方案

a283465001

vb.net怎么增、删、改sql内容

vb.net怎么增、删、改sql内容.biaotiyaocheng

bihaihongtian

【Python编程】Python安全编程与常见漏洞防护

内容概要:本文深入剖析Python应用的安全风险与防护策略,重点对比SQL注入、命令注入、反序列化漏洞、路径遍历等常见攻击面的防御方案。文章从输入验证原则出发,详解参数化查询(parameterized query)对SQL注入的防御机制、subprocess模块的shell=True风险与参数列表传递、以及pickle/ast.literal_eval的安全替代方案。通过代码示例展示密码哈希(bcrypt/argon2)的盐值与迭代策略、JWT令牌的签名验证与过期控制、以及CORS跨域配置的白名单限制,同时介绍bandit静态安全扫描的规则配置、OWASP Python安全编码规范、以及依赖漏洞(CVE)的自动化检测(safety/pip-audit),最后给出在Web应用、数据处理、云原生部署等场景下的安全纵深防御体系与最小权限原则实践。 migu.blsxex.hxjlj.org.cn www.huike-auto.com m.huiyimofang.com hx-whg.com www.huaxiazhenhui.com

2601_96960478

新型电力系统下PI-LSTM物理信息长短期记忆神经网络的电力变压器状态评估方法(Matlab代码实现)

内容概要:本文提出了一种基于物理信息长短期记忆神经网络(PI-LSTM)的电力变压器状态评估方法,旨在适应新型电力系统对设备状态精准评估的需求。该方法将物理规律作为先验知识融入LSTM网络,通过构建包含变压器热力学、电气特性等物理约束的损失函数,提升模型在数据稀疏或噪声干扰下的泛化能力与解释性。利用Matlab实现了PI-LSTM模型的搭建、训练与验证,通过实际案例对比传统LSTM与PI-LSTM在状态参数预测精度、趋势拟合度及异常检测敏感性方面的表现,证明了所提方法的有效性和优越性,为变压器等关键电力设备的智能运维提供了新的技术路径。; 适合人群:从事电力系统、智能电网、设备状态监测与故障诊断研究的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于新型电力系统中电力变压器的健康状态评估与预测性维护;②为掌握物理信息神经网络(PINN)在电力系统中的融合应用提供Matlab实践范例; 阅读建议:建议读者结合Matlab代码深入理解PI-LSTM的网络结构设计、物理约束项的数学表达与代码实现细节,并尝试在不同工况数据集上复现和测试,以充分掌握其在提高模型物理一致性与预测可靠性方面的核心优势。

然哥爱编程
评论 3
收藏 已收藏
分享
返回顶部
tenny
.NET Framework 17,748 成员 24,324 内容