C# Webservice上的IndexOutOfRangeException

C# Webservice上的IndexOutOfRangeException,c#,sql,web-services,asmx,indexoutofboundsexception,C#,Sql,Web Services,Asmx,Indexoutofboundsexception,我在一个网站上得到了一个IndexOutOfRangeException [WebMethod] public Svar FindAgent(int agentCode) { SqlConnection conn = new SqlConnection(@"data source = BABU110-PC; integrated security = true; database = SecretAgentDB"); //forbindelse // Vi burde lave

我在一个网站上得到了一个IndexOutOfRangeException

[WebMethod]
public Svar FindAgent(int agentCode)
{
    SqlConnection conn = new SqlConnection(@"data source = BABU110-PC; integrated security = true; database = SecretAgentDB"); //forbindelse
    // Vi burde lave noget try catch

    conn.Open();
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = @"select * from Agents where Code = " + agentCode;
    SqlDataReader rdr = cmd.ExecuteReader();
    rdr.Read();

    Agent a = new Agent();
    a.Code = (int)rdr["Code"];
    a.Name = rdr["Name"].ToString();
    rdr.Close();

    cmd.CommandText = @"select * from AgentLicense where AgentCode = " + a.Code;
    rdr = cmd.ExecuteReader(); // execute vores sql
    // Hvis der er flere skal der laves en løkke her
    // Read() giver true tilbage, hvis der var flere data.
    // Kan fx bruges i en while 
    rdr.Read();
    License l = new License();
    l.Id = (int)rdr["Id"];
    l.Name = rdr["Name"].ToString(); ------ GIVES ME THE IndexOutOfRangeException HERE
    //
    rdr.Close();

    Svar s = new Svar();
    s.A = a;
    s.L = l;

    return s;
}
我在l.Name=rdr[Name].ToString处遇到此错误

System.IndexOutOfRangeException:名称 秘书长服务CS4.asmx.cs:46行


其中l.Name=rdr[Name].ToString;位于

是否确定名称是读取器结果中的一列?我怀疑AgentLicense表没有名称列。AgentLicense有:Id AgentCode LicenseId看起来您在此处查找的是一个.Name而不是rdr[Name]。ToString。然而,这可能写得更好。对sql表使用联接并从中检索值。将rdr对象分配给一组值,然后再次将rdr对象分配给另一组值。