系统:
SQL Server 2008
Win Server 2008
ASP.NET 4.0
我正在查询只包含clientid,clientname和SSN的数据集。现在是奇怪的部分。 SSN字段中的一个值导致SQLDataReader停止循环。没有错误; DR循环继续后的所有代码执行。我找到了导致问题的联系人的SSN,但SQL查询说它是空的(非空但是空。)
我试图将dr["SSN"].ToString()
括在try / catch中,但同样的事情发生了。没有错误,但退出while循环并继续执行代码。非常奇怪的是,循环关闭下面的SB.append语句没有执行,但是SB.ToString()
就在下面。{
这是一个希望更好地解释的样本。
SB = new StringBuilder();
o = "";
SB.Append("<table>\n");
SB.Append("<tr>\n");
SB.Append("<td>Account Number</td>\n");
SB.Append("<td>Name On Account</td>\n");
SB.Append("<td>SSN</td>\n");
SB.Append("</tr>\n");
while (dr.Read()) {
SB.Append("<tr>\n");
SB.Append("<td>" + dr["AccountID"].ToString() + "</td>\n");
SB.Append("<td>" + dr["Name"].ToString() + "</td>\n");
// This ssn below will execute until that one odd record.
// once the odd ssn column is accessed then the dr.read stops. No error.
SB.Append("<td>" + dr["SSN"].ToString() + "</td>\n");
SB.Append("</tr>\n");
}
SB.Append("</table>\n\n");// <-- this will not execute after odd ssn.
o = SB.ToString();// <-- this will execute after odd ssn.
ctx.Response.Write(o); //<-- this will execute after odd ssn.
SB = null;// <-- this will execute after odd ssn.