为什么 OleDb 拒绝在 MS Access 中有效的查询?

问题描述 投票:0回答:0

我正在尝试使用 C# 程序使用 Microsoft.ACE.OLEDB.12.0 连接到 Access 2019 数据库来执行下面的查询。当我在 Access 中运行查询时,该查询有效。我怎样才能让它在我的程序中工作?它失败了

错误信息:

System.Data.OleDb.OleDbException HResult=0x80040E57 Message=The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data

查询:

INSERT INTO 
PlayerAwardsMart
 (
锦标赛
, 
比赛
, 
地点
, 
, 
player_id
, 
player
, 
registration_group
, 
team`)

SELECT LatestActiveTournament.label 作为锦标赛,PlayerResultsMart.Competition 作为比赛,PlayerResultsMart.Rank 作为地点,PlayerResultsMart.Award 作为奖项,PlayerResultsMart.ID 作为 player_id, PLAYER.[FIRST] + ' ' + PLAYER.[LAST] 作为玩家,GEOCODE.CITY 作为 registration_group,TEAM.TEAM_NAME 作为团队 从 LatestActiveTournament, ((GEOCODE INNER JOIN (PlayerResultsMart INNER JOIN PLAYER ON PlayerResultsMart.ID = PLAYER.ID) ON GEOCODE.GEOCODE = PLAYER.GEOCODE) INNER JOIN TEAM ON PlayerResultsMart.TeamID = TEAM.ID) WHERE(PlayerResultsMart.Award 不为空) 按 PlayerResultsMart.Competition、PlayerResultsMart.Rank、PlayerResultsMart.ID 排序`

连接字符串:

       <add name="DataGrids.Properties.Settings.agamesConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=&quot;C:\AGAMES\AGAMES.accdb&quot;;Persist Security Info=True" providerName="System.Data.OleDb"/>

我在 Visual Studio 2022 v 17.5 中调试了我的程序。我找到了导致异常的查询。因此,我在实际数据库中运行了该查询。它运作良好。不过,我需要在我的程序中自动化它。

ms-access oledb oledbcommand oledbdataadapter oledbexception
© www.soinside.com 2019 - 2024. All rights reserved.