你没有指定任何东西!请添加信息,您甚至没有指定发生此问题的环境、类或一般上下文。我们也不知道retrieveList() 的签名是什么!这让我们很难为您提供帮助!你有多想回答这个问题,我的一位同事曾经面临过:“这个废话行不通!” ? (是的,这甚至不是一个问题,而是发生在现实生活中的支持情境中!)
我注意到的一件事是您使用 *T*oString() 而不是 *t*oString(),我认为这是一个错字。 (已编辑,因为很明显这是 C#)另外,我不知道 .toString(null) 是什么意思。您想告诉我们该语句导致 NullPointerException 吗?在这种情况下,您本可以为我们付出更多努力来理解您的问题,例如把它写下来……
顺便说一句,如果是这样的话,我会说,这将解决你的问题:
Object salCode = context.Request["SalCode"];
context.Response.Write(retrieveList(salCode==null?"":salCode.ToString(), context.Request["groupKeyword"].ToString(), context.Request["text"].ToString()));
编辑我认为(但无法测试)如果 null 是问题,这将解决它。但是,如果底层代码在指定空字符串的情况下无法正常工作,则应该像这样在retrieveList() 中检查(粘贴自引用的帖子):
private string retrieveList(string SalCode, string groupKeyword, string text)
{
SqlConnection _sqlCon = default(SqlConnection);
SqlCommand _sqlCom = default(SqlCommand);
SqlDataReader _sqlReader = default(SqlDataReader);
StringBuilder _sb = new StringBuilder();
List<TokenInputJSON> _out = null;
try
{
_sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SalesianBlastConnectionString"].ConnectionString);
_sqlCom = new SqlCommand("getTokenInput", _sqlCon);
_sqlCom.CommandType = CommandType.StoredProcedure;
_sqlCon.Open();
//This is the edited part
if(SalCode==null || SalCode.Equals("")) {
_sqlCom.Parameters.Add(new SqlParameter("@salCode", SqlDbType.VarChar, 4)).Value = SalCode;
}
//... continue with the other parts
快速检查:我刚刚有了一个想法:在调用retrieveList时使用一个常量值来确定是否是问题所在:
context.Response.Write(retrieveList("enterAValidSalCodeHere", context.Request["groupKeyword"].ToString(), context.Request["text"].ToString()));