C# Webservice上的IndexOutOfRangeException
我在一个网站上得到了一个IndexOutOfRangeExceptionC# 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
[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对象分配给另一组值。