我正在尝试使用 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="C:\AGAMES\AGAMES.accdb";Persist Security Info=True" providerName="System.Data.OleDb"/>
我在 Visual Studio 2022 v 17.5 中调试了我的程序。我找到了导致异常的查询。因此,我在实际数据库中运行了该查询。它运作良好。不过,我需要在我的程序中自动化它。