获取ADO.NET中的参数前缀

2024-05-07

我想使用列名作为参数基于列列表生成多个 SQL 语句。

Edit: C#

var columns = new string[] { "COL1", "COL2" };
var tableName = "TABLE_1";
var prefix = "@"; // TODO get this from the provider factory

string sqlInsert = string.Format(
    "INSERT INTO {0}\n( {1}) VALUES\n({2})",
    tableName,
    string.Join(",  ", columns),
    string.Join(", ", columns.Select(c => prefix + c)));

生成的SQL:

INSERT INTO TABLE_1
( COL1,  COL2) VALUES
(@COL1, @COL2)

这适用于 SqlClient。但我正在使用 System.Data 中的抽象类(DbCommand, DbParameter等)以及基于 app.config 中的连接字符串设置的不同数据提供程序,例如 Oracle、MySQL、Postgres 等。因此我需要知道我必须使用哪个前缀。对于 MS-SQL 来说是@,Oracle 使用:,其余的我其实不知道。

有没有办法从提供者工厂获取此前缀字符?

System.Data.SqlClient.SqlClientFactory.Instance没有这样的信息,或者至少我找不到。

否则,你能给我一个常用数据库的列表吗?

Edit:目标平台是 .NET 2 到 .NET 4,并且该信息应该可以通过提供程序工厂获得。


有2个数据库命令生成器 http://msdn.microsoft.com/library/system.data.common.dbcommandbuilder对你有帮助的方法,获取参数名称 http://msdn.microsoft.com/library/system.data.common.dbcommandbuilder.getparametername and 获取参数占位符 http://msdn.microsoft.com/library/system.data.common.dbcommandbuilder.getparameterplaceholder。这些是受保护的,因此您需要一些思考才能使用它们。

查看我对以下问题的回答以了解实施情况(也包含在数据库扩展 http://maxtoroq.github.io/DbExtensions/图书馆):

您最喜欢的 C# 扩展方法是什么? (codeplex.com/extensionoverflow) https://stackoverflow.com/questions/271398/what-are-your-favorite-extension-methods-for-c-codeplex-com-extensionoverflow/2550726#2550726

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取ADO.NET中的参数前缀 的相关文章

  • Asp.net Mvc OutputCache属性和滑动过期

    Calling http foo home cachetest for UrlRoute Path home cachetest OutputCache Duration 10 VaryByParam none public ActionR
  • 选择 Enum 类型的默认值而无需更改值

    在 C 中 是否可以用属性修饰 Enum 类型或执行其他操作来指定默认值 而不更改值 无论出于何种原因 所需的数字可能是一成不变的 并且仍然可以控制默认值会很方便 enum Orientation None 1 North 0 East 1
  • 异步回调到BackgroundWorker

    我想使用 NET FTP 库 http netftp codeplex com http netftp codeplex com 该库提供 BeginOpenRead string AsyncCallback object 使用异步编程模型
  • 在 MS word .docs 中插入 MathMl 、 Tex 或 LaTex 方程?

    我一直在寻找 C 中 Net 的一些 dll 用于在 MS Word 中插入任何 MathMl Tex 或 LaTex 方程 我尝试了一些类似 DocX 的工具 但它们失败了 你知道吗 或任何提示如何做到这一点 谢谢 Word 2007 可
  • Node.js 和 .net 之间的命名管道通信

    我正在研究 net v4 5 2 和 Javascript node js v8 9 0 应用程序之间的进程间通信 我想为此使用 Windows 命名管道 并且仅限命名管道 对于 Javascript 应用程序 我使用的是命名管道包 v0
  • 创建动态对象

    如何动态创建对象 string columnNames EmpName EmpID PhoneNo List
  • 如何防止 .NET 中的 XPath/XML 注入

    如何防止 NET Framework 中的 XPATH 注入 我们之前使用字符串连接来构建 XPATH 语句 但发现最终用户可以执行一些任意 XPATH 例如 string queryValue pages url USER INPUT V
  • GridView必须添加到表单标签中才能渲染

    TextWriter tr new StringWriter HtmlTextWriter writer new HtmlTextWriter tr HtmlForm form new HtmlForm form Controls Add
  • 是一对一的关系不好的策略

    用户始终拥有一个钱包 一个钱包始终属于一位用户 由于我想分离与钱夹相关的属性 我创建了 Wallet 对象并能够跟踪钱交易 我创建了 public Wallet Entity
  • .net 应用程序中的内存泄漏

    我正在 VB net 2005 中开发一个桌面应用程序 该应用程序包含一个间隔为 1 分钟的计时器 每次计时器计时 就会执行一组函数 大部分与数据库相关 最初 应用程序运行良好 在进程 任务管理器 中 每次调用计时器时 CPU 使用率都会达
  • 这可以用 Moq 来嘲笑吗?

    我正在努力模拟一些外部依赖项 并且在一个第三方类中遇到了麻烦 该类在其构造函数中接收另一个第三方类的实例 希望 SO 社区能给我一些指导 我想创建一个模拟实例SomeRelatedLibraryClass它的构造函数接受一个模拟实例Some
  • 从 SortedList 或 SortedDictionary 获取第 i 个值

    我有一个排序的对象集合 它可以是 SortedList 或 SortedDictionary 我将主要使用它来阅读 因此增加性能并不那么重要 我怎样才能得到第i个值 所以例如当我的集合中有数字 1 2 3 4 5 并且我想要中位数 本例中为
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • 多线程调试技术

    我想知道是否有人知道多线程应用程序调试技术的一个很好的调查 理想情况下 我正在寻找基于案例的分析 死锁 饥饿 损坏的共享状态 Net 特定的或通用的 我不知道有哪篇文章或书籍可以满足您的需求 因此这是我从 12 年 Windows 多线程调
  • 使用 LINQ 迭代类属性

    有一个 ParsedTemplate 类 它有超过 300 个属性 类型为 Details 和 BlockDetails parsedTemplate 对象将由函数填充 填充这个对象后 我需要一个 LINQ 或其他方式 来查找是否有任何属性
  • .NET 的 C 代码解析器

    有谁知道 NET 的 C 解析器库吗 我打算将 C 代码解析为某种形式的对象图 这样我就可以将其转换为不同的语言 ANTLR 可以做你想做的事 它有一个 C 预处理器和 ANSI C 语法 https github com antlr gr
  • 替换字符串中的换行符 C#

    如何在 C 中替换字符串中的换行符 使用替换为Environment NewLine myString myString Replace System Environment NewLine replacement text add a l
  • 如何获取 ASP.NET MVC 中当前的虚拟路径?

    如何从 ASP NET MVC 视图中获取当前路径 URL 如果没有办法将其获取到视图中 那么如何将其获取到控制器中以便将其传递到视图呢 EDIT 我不需要 url 的协议和主机部分 这将为您返回视图中的 url
  • 框架中有通用的交换方法吗?

    框架中是否存在这样的方法 public static void Swap
  • JetBrains Rider 针对 4.5 框架,无法切换到 4.7

    基本上 当尝试添加不支持旧框架的 NuGet 包时 会出现错误 但是在项目配置中只有 4 5 可用 在项目创建过程中 不存在选择目标的选项 有什么方法可以正确配置它吗 I haven t found out how to set up NE

随机推荐

  • 动态数据表在asp.net中采用相反的顺序

    在我的网络应用程序中 我创建了 DataTable dt new DataTable dt Columns Add Month 并用日期填充列名 月 Month Column name oct 2014 July 2016 Aug 2016
  • PyDev 无法再调试

    我正在使用 eclipse 4 2 1 和 pydev 2 7 1 以前是 2 6 0 一切都工作正常 直到调试器突然停止工作 它打印 pydev debugger 开始 然后根本不运行程序 而是挂起 根据我在其他问题报告中找到的一些信息
  • 如何避免将相同的片段添加到堆栈中

    我需要一些帮助 他们以这种方式将片段添加到活动中 问题是每次调用 openFragment 时都会创建片段并添加 这是显而易见的 问题 我做了什么修改 这样它只能添加一次片段 在下次使用相同片段标签的调用时 它将什么也不做 案例 第一次按下
  • Delphi - 将字符串从 UTF-8 转换回来

    我在将 UTF 8 编码字符串转换回 delphi 可用的字符串时遇到问题 该应用程序是用 XE8 编写的 并部署在 Windows 和 OSX 上 该应用程序分别在 Windows 和 OSX 上使用 LimeLM API dll 和 d
  • 使用 JavaScript 或 jQuery 设置文本框的最大长度

    我想用 JavaScript 或 jQuery 更改文本框的最大长度 我尝试了以下方法 但似乎没有帮助 var a document getElementsByTagName input for var i 0 i
  • Windows批处理支持异常处理吗?

    Windows批处理编程支持异常处理吗 如果没有 是否有任何方法可以有效地模拟批处理文件中的异常处理 我希望能够在批处理脚本中的任何 CALL 级别的任何位置 抛出异常 并重复弹出 CALL 堆栈 直到找到活动的 TRY 块 然后 CATC
  • 在 WPF 中设置控件内容比将类绑定到选择器控件更好的方法是什么?

    我有一个分为 4 个面板的应用程序 有一个主绘图区域 一个顶部面板 一个左侧菜单面板和一个右侧子菜单面板 如下图所示 子菜单的内容由选择哪个顶部菜单按钮决定 子菜单的内容由选择哪个右侧菜单决定 例如 这是单击 网络设计和测试 扩展器上的第一
  • 如何以编程方式指定 MATLAB 编辑器键绑定

    我想将键盘键绑定设置为Windows 默认设置我想在启动时使用startup m因为我希望在大量系统上设置此设置 首选项对话框中的等效设置是 MATLAB gt Keyboard gt Shortcuts gt Active Setting
  • 合并分支时,Git 不显示已删除行的当前/传入更改

    我正在尝试了解有关 git 分支 合并的更多信息 一直以来只使用 master 分支 我分支两次 然后执行合并 为什么 git 只显示新的冲突行 我想知道为什么删除 熊 根本没有突出显示为更改 您已经在评论中介绍了其中的一些内容 但让我们把
  • 由于 __init__ 构造函数而产生的 Pytest 集合警告

    我一直在使用 Pytest 和 Selenium Web 驱动程序自学测试自动化 我所有的测试函数都在一个名为测试网络 py 它位于名为的目录中tests 我将所有函数分开 并将它们放在一个名为的单独目录中的自己的文件中测试用例 例如 这就
  • JS:按每个类别的最大值过滤对象数组

    什么是最有效 优雅的方式来实现类似sql的过滤效果 我想过滤它们并只获取某个组中最大值的对象 这是我的代码 它可以工作 但可能不是最好的方法 uniqueValues arr gt new Set arr getMaxTimeOf arr
  • 通过使用 Intents 使用预装的 Google 地图而不是自己的 Activity?

    我只是想知道是否可以将地理坐标传递给谷歌地图应用程序之二意图或类似的东西 我自己编写了一个用于显示路线 坐标等的应用程序 但是让谷歌地图本身显示这些不是更优雅吗 我不知道这是否可能 但也许你们中的一个人可以回答这个问题 如果这是可能的 是否
  • R模糊字符串匹配根据匹配的字符串返回特定列

    我有两个大型数据集 一个大约有 50 万条记录 另一个大约有 7 万条记录 这些数据集有地址 我想匹配较小数据集中的任何地址是否存在于大数据集中 正如您所想象的那样 地址可以用不同的方式和不同的情况 拼写等来书写 此外 如果只写到建筑物级别
  • Swift 2.0 中的 countForFetchRequest

    我正在尝试使用countForFetchRequestSwift 2 0 中托管对象上下文上的方法 我注意到错误处理executeFetchRequest已更改为新的do try catch syntax func executeFetch
  • Xcode 4 上的 Boost 库静态链接

    我在 OS X 上使用 Xcode 使用 Boost 库 Boost 使用 macports 安装在我的系统上 通过将我需要的 3 个 boost 库 例如 libboost thread mt a 添加到 Targets Link Bin
  • 将 CSS 框阴影转换为 iOS 阴影

    有谁知道我如何转换box shadowObjective C 中 UIButton 上的阴影 例如这个阴影 box shadow 2px 0 0 0 46d466 2px 0 0 0 46d466 0 2px 4px 0 rgba 0 0
  • 如何在 C# 中从工作线程发布 UI 消息

    我正在用 C 编写一个简单的 winforms 应用程序 我创建了一个工作线程 我希望主窗口响应线程完成其工作 只需更改文本字段中的一些文本 testField Text Ready 我尝试了事件和回调 但它们都在调用线程的上下文中执行 并
  • 是否可以防止出现文件对话框?为什么?

    假设我有输入 类型 文件 元素 我想拦截 onclick 事件并防止在不满足条件时出现文件对话框 是否可以 如果不是的话 为什么 Soufiane 的代码要求您的页面上有一个名为 jQuery 的 Javascript 库 如果您没有 您可
  • 从 Windows 批处理文件中检测 ANSI 兼容控制台?

    Windows 10 控制台主机 conhost exe has 对 ANSI 转义序列的本机支持 https msdn microsoft com en us library windows desktop mt638032 aspx 旧
  • 获取ADO.NET中的参数前缀

    我想使用列名作为参数基于列列表生成多个 SQL 语句 Edit C var columns new string COL1 COL2 var tableName TABLE 1 var prefix TODO get this from t