使用OleDBDataReader从Access数据库中选择备注字段时,它只返回字符串的一部分.我怎样才能获得整个字符串?

Ste*_*uer 3 .net c# ms-access oledbdatareader

这是我的代码:

OleDbConnection connection = new OleDbConnection(
   "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\Offline.accdb;Persist Security Info=False");
connection.Open();
OleDbCommand command = connection.CreateCommand();
command.CommandText = "SELECT DISTINCT B.* FROM BlankFormSubmissions B, Actions A WHERE A.FormName = 'FindingNemo' AND B.ProcessName = A.ProcessName AND B.ActionName = A.ActionName AND B.ID = 12 OR B.ID = 13 OR B.ID = 14 ORDER BY B.ID";
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    string xml = (string)reader["XML"];
    // ... do something with xml
}
Run Code Online (Sandbox Code Playgroud)

列"XML"是一个类型为memo的Access Database表列.

xml的值始终只包含XML的第一个字符.我猜它是前256个字符.显然,我需要字符串中的所有字符.

有人知道怎么修这个东西吗?

谢谢 :)

Joh*_*les 5

问题可能是备忘录领域本身;

备注字段不能用于聚合参数(如Max,Var,Sum等).如果在查询中使用"分组依据"总计,则仅返回前255个字符.Group Aggregate函数中的'having'和'Where'子句也只返回前255个字符但是,使用'First'或'Last'参数返回字符串的全长.

这是整个SQL语句吗?

  • 如果您认为需要在SELECT DISTINCT中包含备注字段,那么您必须问自己是否存在架构错误. (3认同)