以前一切都很好。我唯一做的就是添加了一个编辑按钮,然后发生了这个错误。即使我撤消编辑按钮,错误仍然存在。谁能告诉我第26行有什么问题?
SqlCommand cmdDoctorInfo = new SqlCommand("SELECT d.* FROM Doctorinfo p, Department d WHERE d.DepartmentID = p.DepartmentID AND p.userId = @UserID", conDoctorInfo);
Line 26: cmdDoctorInfo.Parameters.AddWithValue("@UserID", Session["UserId"].ToString());
SqlDataReader dtrPatient = cmdDoctorInfo.ExecuteReader();
编辑: 由于某种未知的原因,在我关闭并一遍又一遍地打开应用程序后,它突然正常工作。 现在,当我添加回编辑按钮时,错误会恢复。这是编辑按钮代码(第2行)
<td align="center">
<asp:Button ID="editButton" runat="server" OnClick="editButton_Click" Text="Edit" />
<asp:FileUpload ID="picFileUpload" runat="server"/>
<asp:Button ID="uploadButton" runat="server" OnClick="uploadButton_Click" Text="Upload"/>
<br />
<asp:Label ID="messageLabel" runat="server" ForeColor="Red"></asp:Label>
</td>
我不明白添加“编辑”按钮会导致错误。请赐教。
答案 0 :(得分:6)
可能是您的会话[“UserId”]为空。试试这个:
cmdDoctorInfo.Parameters.AddWithValue("@UserID",Convert.ToString(Session["UserId"]));
即使Session [“UserId”]为空,Convert.ToString也不会破坏您的代码。因为Convert.ToString()处理null,而ToString()不处理。
答案 1 :(得分:2)
您展示的代码中唯一可以null
的对象是Session
对象。您正在使用ToString
,如果它为空,则会导致此错误。
您可以查看:
object userIdObj = Session["UserId"];
if(userIdObj != null)
{
// use the correct type, i presume int
int userID = int.Parse(userIdObj.ToString());
cmdDoctorInfo.Parameters.AddWithValue("@UserID", userID);
}