如何使用 ADO.NET 获取表中列的 SqlDbType?

2023-11-23

我试图在运行时确定 sql server 表列的 SqlDbType 是什么。

是否有一个类可以在 System.Data.SqlClient 中执行此操作,或者我应该自己进行映射?我可以从那里得到一个字符串表示

SELECT DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
   WHERE TABLE_CATALOG = '{0}' AND TABLE_SCHEMA = '{1}' 
   AND TABLE_NAME = '{2}' AND COLUMN_NAME = '{3}'

编辑:我无法使用 SMO,因为我无法控制执行机器,所以我不能保证它会被安装。 (抱歉没有说清楚rp)。

编辑:作为对 Joel 的回答,我正在尝试创建一个可以调用的函数,当传递 SqlConnection、表名和列名时,该函数将返回 SqlDBType。


在 SQL Server 中,您可以使用 FMTONLY 选项。它允许您运行查询而不获取任何数据,仅返回列。

SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SET FMTONLY ON; select column from table; SET FMTONLY OFF";
SqlDataReader reader = cmd.ExecuteReader();
SqlDbType type = (SqlDbType)(int)reader.GetSchemaTable().Rows[0]["ProviderType"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ADO.NET 获取表中列的 SqlDbType? 的相关文章

  • ZedGraph 缩放和调整大小

    当我绘制图形 放大和缩小并重新绘制图形时 图形的位置不会改变 我想要做的是 每当重新绘制数据时 视图都会更改以查看所有图形数据 如果您在重绘之前放大或缩小 这似乎会被禁用 Thanks 设置属性 IsZoomOnMouseCenter对于控
  • 当“”可以分配给std::string时,为什么有“clear”方法?

    一个可以用string clear函数清空字符串 也可以使用空双引号 来执行此操作 有什么不同 当您分配一个空字符串时 编译器必须在数据部分存储一个空的 C 字符串 并创建代码以将指向它的指针传递给赋值运算符 然后 赋值运算符必须从数据部分
  • 函数原型和数组参数

    我正在学习 C 语法 并且已经开始研究数组了 我想问你一个问题 但首先让我回顾一下 这样我就知道我已经弄清楚了 我知道您可以使用以下语法将变量定义为数组 name
  • 具有长期运行对象上下文的实体框架

    我对 WinForms 我敢说 WPF 中的 Linq to SQL 的主要烦恼之一是缺乏对长时间运行的数据上下文的支持 请参阅here http blogs msdn com dinesh kulkarni archive 2008 04
  • 增加超时时间

    我必须增加超时时间 以下是我的代码 Private Function GetConnectionInstance As SqlConnection Dim objConn As SqlConnection Dim strConnection
  • NUnit 测试运行顺序

    默认情况下 nunit 测试按字母顺序运行 有谁知道有什么方法可以设置执行顺序吗 是否存在这样的属性 我只是想指出 虽然大多数受访者认为这些是单元测试 但问题并没有具体说明它们是 nUnit 是一个很棒的工具 可用于各种测试情况 我可以看到
  • 优化对绑定到 DataGridView 的 DataTable 的更新

    我的应用程序中有一个显示一些数据的表单 当我第一次显示表单时 我将一些数据加载到 DataTable 中 然后将 DataTable 绑定到 DataGridView 我还启动了一个异步方法来执行一些较慢的数据库查询 当这些慢查询完成时 我
  • ResourceDictionary 源中的 Uri 语法(通用 Windows 平台)

    我正在迁移我的Windows 8 1项目到Windows 10 通用 Windows 平台 这时我被拦住了ResourceDictionary改变在UWP 为了简单起见 我有包含 2 个项目的 Windows 8 1 解决方案 App pr
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • .NET 中 IEqualityComparer 中 GetHashCode 的作用是什么?

    我试图了解 IEqualityComparer 接口的 GetHashCode 方法的作用 下面的例子取自MSDN using System using System Collections Generic class Example st
  • “volatile void function( ... )” 做了什么?

    我见过从语法角度来看 C 函数中 volatile 关键字有多少种用法 https stackoverflow com questions 7643528 how many usage does volatile keyword have
  • C语言:如何获取使用strtok()一次后剩余的字符串

    我的字符串是 A B C D E 分隔符是 如何获取执行 strtok 一次后剩余的字符串 即 B C D E char a A B C D E char separator char b strtok a separator printf
  • C语言中如何将整数转换为字符? [复制]

    这个问题在这里已经有答案了 C语言中如何将整数转换为字符 C 中的字符已经是数字 字符的 ASCII 代码 无需转换 如果要将数字转换为相应的字符 只需添加 0 即可 c i 0 0 是 ASCii 表中的一个字符
  • 如何从句柄确定进程是 32 位还是 64 位?

    如何从使用 OpenProcess 获取的进程句柄中获取信息 无论进程是 32 位还是 64 位 是的 IsWow64Process 毫无用处 令人烦恼 它的真正意思是 启用了 32 位模拟 如果您在 32 位操作系统上运行 则返回 fal
  • 检测用户是否正在滚动 dataGridView 滚动条

    我正在更新一个dataGridView与一个新的数据表使用 dataGridView1 DataSource table 但是 我不想在用户滚动 dataGridView 时执行此操作 如何检查滚动条是否正在滚动或已完成滚动 即拖动而不是单
  • 序列化时如何跳过 xml 声明?

    我正在尝试输出一个没有 xml 头的 xml 文件 例如 我试过 Type t obj GetType XmlSerializer xs new XmlSerializer t XmlWriter xw XmlWriter Create c
  • Azure Function App Azure 服务总线触发器触发两次

    我使用带有服务总线触发器的 Azure Function Apps 来读取服务总线并对服务总线消息的内容执行操作 服务总线接收 JSON 序列化对象 然后将 JSON 消息反序列化回 Function App 中的对象 然而 由于某种原因
  • MonoGame 中的 ContentLoadException

    我一直在尝试使用 Xamarin Studio 在 MonoGame 中加载纹理 我的代码设置如下 region Using Statements using System using Microsoft Xna Framework usi
  • 字符串常量之前应有非限定 ID

    我目前正在编写一个 C 应用程序 它与 math h 结合实现了振荡器 我拥有的代码应该可以很好地用于该应用程序 尝试编译目标文件 但是我遇到编译器错误 很可能与语法 等有关 我认为这与命名空间有关 错误 终端输出 User Name Ma
  • Selenium WebDriver 在按钮单击事件上无法正常工作。这里有什么问题呢?

    I am using following code to scrape data from a website I have following interface 这是 HTML div class es content div

随机推荐

  • 比较两个 xml 并使用 LINQ 打印差异

    我正在比较两个 xml 并且必须打印差异 我怎样才能使用 LINQ 来实现这一点 我知道我可以使用 Microsoft 的 XML diff 补丁 但我更喜欢使用 LINQ 如果你有任何其他想法我会实现 第一个XML
  • 如何获取通过 USB 端口连接到 Android 设备的条码扫描仪的扫描结果?

    外部激光条码扫描仪连接到 Android POS 设备 我需要在我的应用程序中访问扫描结果 这怎么可能 需要 Android 操作系统版本 2 3 及以上版本的支持 大多数 USB 扫描仪通过 HID 配置文件连接 因此 Android 应
  • 无法在文本框中输入双精度值

    我正在开发 mvc net Web 应用程序 并使用实体框架来生成模型 我有包含双精度属性的类 我的问题是当我使用 HTML EditorFor model gt model Double attribute 并测试我的应用程序 我无法在该
  • null==object 和 object==null 之间的区别[重复]

    这个问题在这里已经有答案了 您好 我想知道上述比较之间的区别 当我检查时出现空指针异常object getItems null 但如果我把它改成null object getItems 效果很好 我确实调查过这个null object 和
  • Anaconda 未更新到最新版本

    anaconda的最新版本是2 5 当我输入 conda update conda conda update anaconda I get All requested packages already installed packages
  • 如何设置 Gruntfile 在 heroku 上使用 compass/sass?

    我已经成功设置了我的heroku应用程序咕噜构建包 当我将 Node js 应用程序推送到 heroku 时 它将运行适当的 grunt 任务 我想要的是使用 grunt contrib compass 包来编译我的 scss 文件 但这需
  • Lambda + Python + 退出代码

    我遇到了用 Python 编写的简单 AWS Lambda 函数的问题 当我运行 Lambda 函数时 我的代码按预期运行 结果正确 但仍以错误代码 退出代码 结束 Process exited before completing requ
  • 如何从文本框中删除光标?

    这是我的代码 table tr td td tr table
  • Numpy - 将行添加到数组

    如何向 numpy 数组添加行 我有一个数组A A array 0 1 2 0 2 0 如果 X 中每行的第一个元素满足特定条件 我希望从另一个数组 X 向该数组添加行 Numpy 数组没有像列表那样的 追加 方法 或者看起来是这样 如果
  • 如何使用javascript检查页面是否是第一次加载

    我想检查页面是否是第一次加载 如果是 则显示过滤器 如果我将 showFiltermenu 放在 pageLoad 函数中 那么每次加载页面时它都会显示 但我只想它第一次显示 我尝试使用Page IsPostBack但不显示过滤器
  • 在 Ruby 中抓取/解析 Google 搜索结果

    假设我有 Google 搜索结果页面的完整 HTML 有谁知道任何现有的代码 Ruby 来抓取 解析Google搜索结果的第一页 理想情况下 它可以处理可能出现在任何地方的购物结果和视频结果部分 如果没有 那么基于 Ruby 的最佳屏幕抓取
  • Visual Studio Code 抱怨它“找不到 *.d.ts 文件中定义的类型的命名空间”

    我使用创建了一个新项目吞咽角Yeoman 生成器 语言设置为 TypeScript 然后运行Gulp构建过程并在网络浏览器中打开页面 所有这些都正常运行 没有任何更大的问题 我只需要更换ref master in the tsd json
  • Android:同时进行平移和旋转动画

    我想以编程方式同时显示两个动画 而不是在 XML 文件中 它应该旋转和平移我怎样才能做到这一点 请给我一些建议 这是妈妈的代码 gt ImageView snowImg1 ImageView findViewById R id snowim
  • 如何在 QPlainTextEdit 中为突出显示的字符串创建工具提示

    我有一个 QPlainTextEdit 并且其中突出显示了一些单词 现在我希望当我用鼠标悬停在它上面时 它会向我显示一个工具提示 其中包含有关此突出显示单词的描述或类似内容 在 QT IDE 中类似这样 但我不知道如何开始这个所以任何想法
  • 可变长度与 Malloc 数组

    根据c99标准 我们可以编写以下代码 这是完全合法的 int x scanf d x int ar x 我的问题是 如果我可以分配这样的数组 为什么我需要 malloc 再次分配可变大小的数组 另外 您能否解释一下可变长度数组分配是如何发生
  • 如何将具有历史记录的 SVN 存储库迁移到新的 Git 存储库?

    我阅读了 Git 手册 常见问题解答 Git SVN 速成课程等 它们都解释了这个那个 但你找不到像这样的简单说明 SVN 存储库位于 svn myserver path to svn repos Git 存储库位于 git myserve
  • 类定义之外不允许覆盖

    我创建了一个抽象类和一个具体子类 bca h include
  • 在 ASP.NET MVC 4 中获取复选框值

    我正在开发 ASP NET MVC 4 应用程序 这个应用程序有一个基本的形式 我的表单的模型如下所示 public class MyModel public string Name get set public bool Remember
  • 模板的编译是如何工作的?

    我正在读一本关于模板如何工作的书 但我很难理解模板的解释 It says 当编译器看到模板的定义时 它不会生成代码 仅当我们实例化模板的特定实例时 它才会生成代码 事实上 只有当我们使用模板时 而不是在定义模板时 才会生成代码 这一事实会影
  • 如何使用 ADO.NET 获取表中列的 SqlDbType?

    我试图在运行时确定 sql server 表列的 SqlDbType 是什么 是否有一个类可以在 System Data SqlClient 中执行此操作 或者我应该自己进行映射 我可以从那里得到一个字符串表示 SELECT DATA TY