将对象传递给 PowerShell 函数

2023-12-27

我试图将 SQL 适配器对象传递给 PowerShell 函数,但收到此错误:

executeQueryAndFillTable:无法处理参数转换 参数“da”。无法转换类型的“System.Object[]”值 “System.Object[]”以键入“System.Data.SqlClient.SqlDataAdapter”。

这是代码

function sql_pull
{
    # define Objects
    $xmlDoc = New-Object System.Xml.XmlDocument
    $sqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $sqlCommand = New-Object System.Data.SqlClient.SqlCommand
    $sqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $connectionString = "Password=$password;Persist Security Info=True;User ID=$userId;Data Source=$dataSource"
    $counter = 0

    # database queries 
    $queries = @(
    "Select * from sys.configurations for xml Raw ('Cretiria'), type, ROOT('sys.configurations'), ELEMENTS");

    $sqlConnection.ConnectionString = $connectionString
    $sqlCommand.Connection = $sqlConnection

    try {
        $sqlConnection.Open()
        
        foreach($q in $queries) 
        {
            $sqlCommand.CommandText = $q
            $sqlAdapter.SelectCommand = $sqlCommand.CommandText
            $sqlAdapter.SelectCommand.CommandTimeout = 300

            $res = executeQueryAndFillTable($sqlAdapter, $sqlCommand)              
        }

        $sqlConnection.Dispose()
        $sqlCommand.Dispose()
        $sqlAdapter.Dispose()
    } 
    catch
    {
        Throw
    }    
}

function executeQueryAndFillTable
{
    param(
        [System.Data.SqlClient.SqlDataAdapter]$da,
        [System.Data.SqlClient.SqlCommand] $command
    )

    $dataTable = New-Object System.Data.DataTable
    $da.SelectCommand = $command
    $da.Fill($dataTable)
    #check
    $data = $dataTable.Rows[0][0]
    return $data
}

两件事情:

First:在PowerShell中函数应该在使用前声明。

Second:函数的调用方式。

executeQueryAndFillTable($sqlAdapter, $sqlCommand)

这不是在 PowerShell 中调用函数的正确方法。如果你这样调用它,PowerShell 会认为你调用的函数只有一个参数,即一个数组(非常重要),是 PowerShell 中的数组运算符)两个不同类型的元素(原因是System.Object[]在错误中)。

正确的方法是:

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

将对象传递给 PowerShell 函数 的相关文章

  • QTableView 并双击一个单元格

    我正在开发测试用例编辑器 该编辑器包含 USART 传输和接收数据包格式 编辑器是一个表格视图 发送和接收数据包的长度为八个字节 例如 0x01 0x02 0x03 0x08 它在我的第五和第六栏中 现在 我希望此列中的单元格为只读 但是当
  • 多次客户端打印后,Arduino (Uno) 以太网客户端连接失败

    我正在使用带有以太网扩展板的 Arduino Uno 发送多次 HTTP 请求后 客户端 println 客户端连接时开始失败 故障时间似乎是随机的 并且循环中的序列读数可能在 1000 和 7000 之间变化 该错误与以太网发送缓冲区溢出
  • 模板:模板函数与类模板成员函数不能很好地配合[重复]

    这个问题在这里已经有答案了 这是我实际拥有的一些代码的最小测试用例 当它尝试评估时失败a getResult b test cpp In function void printStuff const A test cpp 6 error e
  • iTextSharp 从一页模板高效批量生成 PDF

    我正在使用 ITextSharp 生成多页 PDF 每个页面都有相同的模板 问题是 PDF 的物理大小会随着模板的大小而增长 I HAVE to use 阿克罗菲尔德 我怎么能够reduce最终文件大小 这是 pdf 处理程序的代码片段 p
  • opencv如何使用鼠标事件不规则地选择图像区域? c/c++ [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 最近在学习opencv 有没有办法使用鼠标事件选择图像区域 我已经尝试过三角形的了 如果我想选择特定区域而不是三角形怎么办 谢谢你 我对此进
  • Qt:不完整类型和前向声明的使用无效

    我有一些误解 A h ifndef A H define A H include B h class A public B Q OBJECT public A endif A cpp include A h A A B ui gt blan
  • if constexpr 与 sfinae

    随着引入if constexpr in c 17 通过使用编译时 SFINAE 解决了一些问题c 14 c 11现在可以使用解决if constexpr 具有更简单的语法 例如 考虑以下编译时递归的基本示例 以生成打印可变数量参数的子例程
  • 给定 X 在三次贝塞尔曲线上求 Y?

    我需要一种方法 允许我在给定 x 坐标的情况下找到三次贝塞尔曲线上的 Y 坐标 我遇到过很多地方告诉我将其视为三次函数 然后尝试找到根 我理解这一点 然而 三次贝塞尔曲线的方程是 对于 x 坐标 X t 1 t 3 X0 3 1 t 2 t
  • C# P2P聊天应用程序设计

    我想创建一个不使用显式服务器的简单聊天应用程序 主要要求是用户可以同时与许多朋友聊天 就像在 Skype 等上一样 我在这里指的不是会议聊天 而是多个单独的聊天窗口 目前 我只想要一个 LAN 消息应用程序 但如果设计能够轻松扩展到 Int
  • C语言中的积分提升和平衡有什么区别?

    积分提升和平衡有什么区别 我们是否可以总结这两条规则 即在执行任何操作 逻辑运算符 除外 之前 任何类型都至少转换为 int 或 unsigned int 类型 如果任何操作数的类型为更大 则转换为更大的类型比整数 积分促销 是旧的C90术
  • 基本 WinForm KeyDown 事件处理

    我正在使用 WinForms 我已经为KeyDown主窗体的事件 从而调用按钮的Click事件处理程序 The Click调用的事件处理程序取决于按下的特定键 如果用户单击该按钮而不是使用该键 然后随后尝试使用该键 则该键 例如向下箭头 将
  • C - 具有可变数量参数和命令行参数的函数

    我需要排序n按字典顺序排列的作为参数数量可变的函数的参数的字符串数量 在main函数中 字符串被读取为命令行参数 这是我的代码 include
  • 如何在 Unix 控制台或 Mac 终端中编译和运行 C/C++ 代码?

    如何在 Unix 控制台或 Mac 终端中编译 运行 C 或 C 代码 如果是一个简单的单源程序 make foo 源文件在哪里foo c foo cpp等等 你甚至不需要 makefile Make 有足够的内置规则将源文件构建为同名的可
  • Linq 选择行,其中日期在当月

    我需要获取当月的数据 一直无法找到有效的解决方案 这是我的代码 它为我提供了所需的数据 但我获取的是整整一个月前的数据 而不是当前月份的数据 我选择了两次日期 限制 row gt DateTime Today Addmonths 1 有任何
  • 使用 Elmah 进行异常处理

    我用 Elmah 记录异常 想知道我使用的技术是否是好的设计 现在 我捕获并重新抛出各种类和方法中发生的异常 并将它们记录到程序的主 try catch 块中的 Elmah 主程序 try Some code that fires off
  • C# 以非管理员权限运行进程

    我启动了一个有关管理员权限的流程 psi Verb runas process StartInfo psi process Start 但现在这个过程必须启动另一个应用程序 但需要非管理员权限 应用程序适用于非管理员权限 我怎样才能做到这一
  • 如何使用 C# 和 IBM Watson SDK 将实时音频流立即发送到 IBM Watson Speech-To-Text,而不在本地保存音频文件?

    我需要使用 IBM Watson SDK 使用麦克风录制音频 并使用 C 将其发送到 IBM Watson 语音转文本 我可以通过在本地保存音频文件然后使用发送它来实现此功能NAudio图书馆 但我的要求是使用流模式将实时音频发送到 IBM
  • 在使用 stop_token 等待条件变量_any 时是否需要拥有锁来请求停止?

    在等待条件变量时 更改谓词状态的线程必须拥有锁 因此在唤醒期间不会错过更新 根据文档 这是必要的 即使在使用原子变量时也是如此 不过我不确定是否request stop 已经正确处理了 那么问题是 这两个选项中哪一个是正确且符合标准的呢 j
  • Nunit 测试给出结果 OneTimeSetUp: 未找到合适的构造函数

    我有一个问题 NUnit 告诉我 没有找到合适的构造函数 这是什么原因造成的 我还收到另一条消息 异常没有堆栈跟踪 这两条消息只是一遍又一遍地重复 这是我的代码 TestFixture public class SecurityServic
  • 为什么编译器将“char”匹配“int”而不是“short”?

    我有一个小程序 include

随机推荐

  • 如何使用终端在 Ubuntu 12.04 上安装最新版本的 Eclipse Classic?

    请问如何使用终端在 Ubuntu 12 04 上安装最新的 Eclipse Classic 4 2 如果您能一步一步指导我 我将不胜感激 Step 1 安装java JDK或JRE sudo apt get install openjdk
  • 如何获取unsigned char的每一位的值?

    在c中 我知道无符号字符是有尺寸的1 个字节 1 个八位字节 8 位 并且我知道 unsigned char 实际上是 0 到 255 之间的整数值 现在如果我有以下 unsigned char 变量 unsigned char c 255
  • 与 Visual C++ 2010 的串行端口 (RS232) 通信

    我必须在 Visual C 2010 中编写一个程序 以便在 Windows 7 32 位中通过串行端口 RS232 进行通信 有人可以帮我找到正确的例子吗 串行通信 http msdn microsoft com en us librar
  • 测试 Flask 响应是否为 JSON

    如何测试 Flask 视图生成的响应是否为 JSON from flask import jsonify app route def index return jsonify message hello world c app app te
  • JavaScript 模板文字中的转义美元符号(模板字符串)

    我正在使用 JavaScript ES6 的新模板文字 模板字符串 语法文档在这里 https developer mozilla org en US docs Web JavaScript Reference Template liter
  • 从 Firestore 检索 json 数据

    在 firestore 文档中我找到了这种获取多数据的方法 db collection cities where capital true get then function querySnapshot querySnapshot forE
  • 获取当前更新的列名称以在触发器中使用

    有没有办法实际获取已更新的列名称以便在触发器中使用它 基本上 每当用户插入或更新表时 我都会尝试进行审计 跟踪 在本例中 它与联系人表有关 CREATE TRIGGER after update contact AFTER UPDATE O
  • 如何使用 git 从另一个目录添加文件?

    我通过浏览器直接在 GitHub 上创建了一个存储库 而不是使用 git bash 将存储库克隆到我的机器上 我能够使用自述文件使用 bash 进行测试提交 我总是变得致命 运行 git work tree yourSrcFolder ad
  • 在 Ruby (Rails) 中模拟抽象类

    我想在 Ruby on Rails 中模拟一个抽象类 IE 如果有人试图打电话 我想提出例外Abstract new 但他应该能够打电话Child new while Child lt Abstract 这个怎么做 覆盖两者new and
  • “允许从任何地方访问”MongoDB Atlas

    我正在构建一个网站 并使用 MongoDB Atlas 作为我的数据库 在 MongoDB 网络访问部分中 我必须指定要连接的 IP 地址才能建立数据库连接 并且由于我使用云服务来运行我的服务器 所以我必须选择 允许从任何地方访问 选项 将
  • 单元测试反应动作 - browserHistory 未定义

    我为我的行为编写测试 使用 browserHistory from react router 当我运行测试时 由于未知原因 导入的 browserHistory 未定义 因此 测试会抛出错误 无法读取未定义的属性 push 我不知道为什么
  • 网站或应用程序上的数据泄露暴露了您的密码。 Chrome 建议更改您的密码 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 login从 mongoose 获取特定用户配置文件的路由 我有 select password 工作排除密码 但我仍然从谷歌浏
  • 想要从其他活动更改 TextView 的文本吗?

    我目前正在设计一个电子书阅读器应用程序作为我的项目 我在更改文本时遇到问题textview来自其他活动 我的项目内容 活动1包含两个按钮 当button1单击 某些文本 应该出现 何时button2单击 其他文本 应该出现在文本视图1这是在
  • HTML5 Canvas 无法在外部 JavaScript 文件中工作

    我已经用 JavaScript 编写了这段代码 当我将其包含在我的 index html 页面上时 它工作得非常好
  • 什么是“覆盖条件”?

    的来源Statemtl 中的变压器 http hackage haskell org packages archive mtl 2 1 2 doc html src Control Monad State Class html states
  • Sqlite 中的多线程

    我正在使用 System data sqlite 连接到 Sqlite 数据库 按照SQLite 文档 http www sqlite org threadsafe html 用户可以通过使用启用多线程SQLITE OPEN NOMUTEX
  • tkinter treeview单击所选项目的事件[重复]

    这个问题在这里已经有答案了 在我的小型 tkinter 应用程序中 我的树具有如下图所示的结构 我只想在用户双击树的最后一个项目 Amount1 或 Amount2 等 时才创建单击事件 不幸的是 当我单击树的任何项目时 单击事件会起作用
  • Node-gyp 和自定义依赖/库/头安装路径

    我有一个构建环境 其中我的库 和标头 安装到自定义位置 从 npm 安装软件包时 使用 node gyp 的模块会失败 因为它们找不到我已安装的库 或标头 如何让 node gyp 知道我的自定义安装位置 linux 如果你设置CXXFLA
  • 无法连接到服务器 127.0.0.1 shell/mongo.js

    当我在 ubuntu 中设置 mongodb 时 我尝试 mongo 它显示此错误 couldn t connect to server 127 0 0 1 shell mongo js 那么我能做什么 thanks 手动删除锁定文件 su
  • 将对象传递给 PowerShell 函数

    我试图将 SQL 适配器对象传递给 PowerShell 函数 但收到此错误 executeQueryAndFillTable 无法处理参数转换 参数 da 无法转换类型的 System Object 值 System Object 以键入