组件SqlDataAdapter的查询构建器中设置了列的条件参数,完成没有错误。   
构建的SQL如下:SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID 
             FROM LYNN INNER JOIN
             Contact ON LYNN.UserID = Contact.RequestID
             WHERE (Contact.DestinationID = '@UserID') AND (Contact.IsApproved = 1)在后台代码中,执行到adApproved.SelectCommand.Parameters["@UserID"].Value = Context.User.Identity.Name;会出现一个异常Object reference not set to an instance of an object.
后来我用'b69b2efd-076e-4abd-9c14-d1af9468b101'代替sql语句中的'@UserID',在sql server里面检验结果是对的。
不知道问题出在哪里了,大家帮帮忙呀,谢谢!

解决方案 »

  1.   

    问题 发错地方了
    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID 
                FROM LYNN INNER JOIN 
                Contact ON LYNN.UserID = Contact.RequestID 
                WHERE Contact.IsApproved = 1 AND  Contact.DestinationID = @UserID AND
      

  2.   

    问题 发错地方了
    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID 
                FROM LYNN INNER JOIN 
                Contact ON LYNN.UserID = Contact.RequestID 
                WHERE Contact.IsApproved = 1 AND  Contact.DestinationID = @UserID
      

  3.   

    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID 
                FROM LYNN INNER JOIN 
                Contact ON LYNN.UserID = Contact.RequestID 
                WHERE Contact.IsApproved = 1 AND  Contact.DestinationID = @UserID 
    ---如果@UserID 不是许多ID用','合并的串, 语句没问题
    如果@UserID 是许多ID用','合并的串,那修改如下:
    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID 
                FROM LYNN INNER JOIN 
                Contact ON LYNN.UserID = Contact.RequestID 
                WHERE Contact.IsApproved = 1 AND charindex(','+ ltrim(Contact.DestinationID)+',', ','+@UserID+',' )>0
      

  4.   

    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID
                FROM LYNN INNER JOIN
                Contact ON LYNN.UserID = Contact.RequestID
                WHERE (Contact.DestinationID = '@UserID') AND (Contact.IsApproved = 1) 改为
    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID
                FROM LYNN INNER JOIN
                Contact ON LYNN.UserID = Contact.RequestID
                WHERE (Contact.DestinationID = @UserID) AND (Contact.IsApproved = 1) 否则你的语句里将没有@UserID参数,而是个'@UserID'字符串
      

  5.   

    SELECT LYNN.FirstName, LYNN.LastName, LYNN.PhoneNumber, LYNN.Address, LYNN.Email, LYNN.UserID 
                FROM LYNN INNER JOIN 
                Contact ON LYNN.UserID = Contact.RequestID 
                WHERE (Contact.DestinationID = @UserID) AND (Contact.IsApproved = 1)