You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中MySQL查询ExecuteScalar()偶发返回null问题排查

问题:PowerShell中MySQL ExecuteScalar()偶尔返回null的排查过程

问题背景

运行PowerShell脚本从MySQL的employees表查询employeeid,每位员工对应唯一employeenumber,执行的查询语句如下:

SELECT e.employeeID FROM employees e WHERE e.EmployeeNum = 102130 AND e.Deleted = 0;

该查询对多数员工有效,但少数员工调用ExecuteScalar()时返回null。用HeidiSQL直接执行该查询,能得到正确的唯一ID结果。

已查阅Stack Overflow相关旧帖,其他案例的问题是值本身为null,但本次情况并非如此。

数据库连接代码(连接字符串参数均正确)

$ConnectionString='server=' + $cs_MySQL_Server + ';port=' + $cs_MySQL_Port + ';uid=' + $cs_MySQL_User + ';pwd=' + $cs_MySQL_Pwd + ';database=' + $cs_MySQL_database + ';default command timeout=' + $cs_MySQL_timeout + '; Connection Timeout=' + $cs_MySQL_timeout
$Connection = [MySql.Data.MySqlClient.MySqlConnection]@{ConnectionString=$ConnectionString}

$Connection.Open()
 
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $Connection   

更新1:ExecuteScalar()调用代码

$sql.CommandText = "SELECT e.SurName FROM employees e WHERE e.EmployeeID = " + $employeeID + ";"
$employee_SurName = $sql.ExecuteScalar()

更新2:问题定位与解决

发现同一员工存在两条不同EmployeeNum的记录,导致处理结果时员工编号反复切换。修改查询语句,确保每位员工仅返回一条结果后,问题解决。

内容的提问来源于stack exchange,提问作者dteusner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:22:35