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

PowerShell使用ODBC读取.csv文件报错:数据源名称未找到

解决PowerShell无DSN读取CSV时的ODBC驱动错误

问题现象

执行PowerShell代码读取CSV时触发以下错误:

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

用户代码:

$SourceFolder = [String]::Format("{0}\Data\Source\", ".")
$driver = "Microsoft Access Text Driver (*.txt;*.csv)"
$connectionString = [String]::Format("Driver={0};Dbq={1};Extensions=csv,txt;", $driver, $SourceFolder)
$odbcConnection = New-Object System.Data.Odbc.OdbcConnection($connectionString)
$odbcConnection.Open()

已确认系统存在64位Microsoft Access Text Driver (*.txt, *.csv)驱动,尝试过创建schema.ini、重启、调整连接字符串、更换路径等操作无效,仅DSN方式可正常工作,但需避免使用DSN。

解决方案

1. 严格匹配驱动名称

ODBC驱动管理器对驱动名称的符号、空格完全敏感,代码中驱动名使用了分号;,但实际驱动名称是逗号,。需从Get-OdbcDriver输出复制精确名称:

# 获取系统中存在的精确驱动名称
$driver = (Get-OdbcDriver -Name "Microsoft Access Text Driver (*.txt, *.csv)").Name

2. 使用绝对路径作为数据源目录

相对路径可能导致ODBC驱动解析失败,改用绝对路径:

$SourceFolder = Join-Path (Get-Location) "Data\Source"

3. 正确转义连接字符串中的特殊字符

驱动名称包含空格和括号,需用反引号"转义双引号,确保连接字符串被正确解析:

$connectionString = "Driver=`"$driver`";Dbq=`"$SourceFolder`";Extensions=csv,txt;"

4. 确认PowerShell运行位数

确保使用64位PowerShell运行代码(右键选择「Windows PowerShell (x64)」),避免32位环境无法识别64位驱动。

修正后的完整代码

# 获取精确驱动名称
$driver = (Get-OdbcDriver -Name "Microsoft Access Text Driver (*.txt, *.csv)").Name
# 生成绝对数据源路径
$SourceFolder = Join-Path (Get-Location) "Data\Source"
# 构建转义后的连接字符串
$connectionString = "Driver=`"$driver`";Dbq=`"$SourceFolder`";Extensions=csv,txt;"

$odbcConnection = New-Object System.Data.Odbc.OdbcConnection($connectionString)
try {
    $odbcConnection.Open()
    Write-Host "CSV数据源连接成功"
}
catch {
    Write-Error "连接失败: $_"
}
finally {
    # 确保资源释放
    $odbcConnection.Close()
    $odbcConnection.Dispose()
}

额外排查项

若仍无法连接,可尝试添加Extended Properties参数指定文本格式:

$connectionString = "Driver=`"$driver`";Dbq=`"$SourceFolder`";Extensions=csv,txt;Extended Properties=`"text;HDR=Yes;FMT=Delimited`";"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:45:08