我有以下代码用于构建固定长度的文本文件。
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 Development\SSIS\Reports\NursysAPRN_ToNatCouncil\BuildFile_EXE\BuildFile_EXE\Program.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()
string.format是否有11个索引限制,或者我错过了一些明显的东西?
感谢。
答案 0 :(得分:1)
请阅读您的例外情况。它声明您的SqlDataReader
类访问的数据库中的表只有11列