当前位置: 首页 > news >正文

通过DataReader获取sql查询的字段元数据信息

原理

应用程序调用 GetSchemaTable()↓
ADO.NET 驱动程序生成元数据查询SQL↓
发送到数据库服务器执行↓
数据库返回结果集架构信息(不包含实际数据)↓
ADO.NET 解析架构信息并构建 DataTable↓
返回包含完整列信息的 DataTable

sqlsugar

            var sql = $@"select * from sys_database d
left join sys_table t
on d.""id"" = t.database_id";//var behavior80c9dce3fe3b43b8847e55614ab45b56 = CommandBehavior.SequentialAccess |  CommandBehavior.CloseConnection;var behavior80c9dce3fe3b43b8847e55614ab45b56 = CommandBehavior.SchemaOnly;res = new List<object>();var result = await sqlSugar.Ado.GetCommand(sql, paraList.ToArray()).ExecuteReaderAsync(CommandBehavior.SchemaOnly);var schema = result.GetSchemaTable();foreach (DataRow row in schema.Rows){string columnName = row["ColumnName"].ToString();Type dataType = (Type)row["DataType"];int columnSize = (int)row["ColumnSize"];//bool isNullable = (bool)row["AllowDBNull"];var isNullable = row["AllowDBNull"];// 还有其他信息,如精度、小数位数等Console.WriteLine($"列名: {columnName}, 类型: {dataType}, 大小: {columnSize}, 可空: {isNullable}");}

ado

using (SqlCommand command = new SqlCommand("SELECT TOP 0 * FROM employees", connection))
{using (SqlDataReader reader = command.ExecuteReader()){// 获取数据表的Schemavar schemaTable = reader.GetSchemaTable();// 遍历每一列的Schema信息foreach (DataRow row in schemaTable.Rows){string columnName = (string)row["ColumnName"];Type dataType = (Type)row["DataType"];int maxLength = (int)row["ColumnSize"];bool allowNull = (bool)row["AllowDBNull"];// 输出列的信息Console.WriteLine("列名:{columnName}");Console.WriteLine("数据类型:{dataType}");Console.WriteLine("最大长度:{maxLength}");Console.WriteLine("是否允许为空:{allowNull}");Console.WriteLine("---------------------------------------");}}
}
http://www.rkmt.cn/news/56777.html

相关文章:

  • The 5W2H Problem-Solving Method
  • 重组生长因子全面解析:从结构功能到科研应用指南
  • STM32系统时钟与SysTick定时器
  • 【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛 - 详解
  • 【第7章 I/O编程与异常】\r\n 和 \n\r是一回事吗?
  • 2025-11-21
  • Gephi如何支持MySQL数据的复杂查询
  • Fisrt Blog
  • c语言和python如何解决文本文件中“不同平台换行符不兼容”问题
  • 完整教程:政务系统信创改造中,金仓日志如何满足等保2.0三级审计要求
  • 如何使用IDM嗅探视频并下载?
  • java数据结构--LinkedList与链表 - 教程
  • Record-X
  • macos: 景观类动态的壁纸和屏保保存在哪里
  • nju实验二 译码器和编码器
  • 第四十六篇
  • 2025年送礼水果排行榜权威推荐,拉吾尤摩赣南脐橙荣登榜首
  • AI救星!8个写毕业论文的实用AI工具大揭秘
  • 数据血缘图在数据错误追溯中的应用指南
  • CSS基础语法 - 指南
  • 「Temp」目录
  • 高中学习机五大品牌终极横评:优缺点一览,找到最适合你的那一款!
  • 开发智联笔记项目时所遇问题(4)
  • 20251121周五日记
  • CrewAI 上手攻略:多 Agent 自动化处理复杂任务,让 AI 像员工一样分工协作
  • 开发智联笔记项目所遇问题
  • 实用指南:【记录】MAC本地微调大模型(MLX + Qwen2.5)并利用Ollama接入项目实战
  • 搜维尔科技:利用MANUS数据手套实现灵巧远程操作:对20自由度灵巧手进行控制
  • nju实验一选择器
  • AI浪潮下的新动向:协作、法律与未来工作