我用下面的代码来构建一个固定长度的文本文件。
TestFile.WriteLine(string.Format(
//Formats with negative numbers are left justified. e.g. {1,-10}
"{0,50}" + //SPACER 50
"{1,-10}" + //NCSBN ID
"{2,10}" + //SPACER 10
"{3,-50}" + //LAST NAME
"{4,-30}" + //FIRST NAME
"{5,-30}" + //MIDDLE NAME
"{6,90}" + //SPACER 90
"{7,-8}" + //DOB
"{8,-1}" + //GENDER
"{9,-9}" + //SOCIAL SECURITY NUMBER
"{10,41}" + //SPACER 41
"{11,-60}" + //ADDRESS 1
"{12,-60}", //ADDRESS 2
DbReader.GetString(0),DbReader.GetString(1),DbReader.GetString(2),
DbReader.GetString(3), DbReader.GetString(4),DbReader.GetString(5),
DbReader.GetString(6), DbReader.GetString(7), DbReader.GetString(8),
DbReader.GetString(9), DbReader.GetString(10), DbReader.GetString(11),
DbReader.GetString(12)));
一切正常,直到我添加第12个索引,然后我得到以下错误:
System.IndexOutOfRangeException was unhandled
Message="Index was outside the bounds of the array."
Source="System.Data"
StackTrace:
at System.Data.Odbc.DbCache.AccessIndex(Int32 i)
at System.Data.Odbc.OdbcDataReader.internalGetString(Int32 i)
at System.Data.Odbc.OdbcDataReader.GetString(Int32 i)
at BuildFile_EXE.Program.Main(String[] args) in G:IT DevelopmentSSISReportsNursysAPRN_ToNatCouncilBuildFile_EXEBuildFile_EXEProgram.cs:line 69
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
字符串。格式有11个索引限制,还是我错过了什么明显的?
谢谢。
请阅读您的例外。它声明由SqlDataReader
类访问的数据库中的表只有11列