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
相关产品推荐
相关产品推荐

