整容说文库 > 程序代码 > 教育资讯

ArraList中超出索引的问题。

来源:学生作业帮助网 编辑:整容说文库 时间:2021/05/19 08:03:21 程序代码
ArraList中超出索引的问题。程序代码
private SqlConnection conn;
private SqlDataAdapter da;
private SqlCommand cmd;
private SqlDataReader dr;

public string AddAll(ArrayList a)
{
conn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand("Sp_Info_InsertAll",conn);
da.InsertCommand.CommandType = CommandType.StoredProcedure;

da.InsertCommand.Parameters.Add("@BigSort",SqlDbType.VarChar,50).Value = a[0];
da.InsertCommand.Parameters.Add("@SmallSort",SqlDbType.VarChar,50).Value = a[1];
da.InsertCommand.Parameters.Add("@Title",SqlDbType.NVarChar,50).Value = a[2];
da.InsertCommand.Parameters.Add("@Source",SqlDbType.VarChar,50).Value = a[3];
da.InsertCommand.Parameters.Add("@Contant",SqlDbType.NVarChar,500).Value = a[4];
da.InsertCommand.Parameters.Add("@StrDate",SqlDbType.DateTime).Value = a[5];
da.InsertCommand.Parameters.Add("@Hit",SqlDbType.Int).Value = a[6];

conn.Open();
try
{
da.InsertCommand.ExecuteNonQuery();
}
catch(Exception e)
{
Console.Write(e.Message);
}
finally
{
conn.Dispose();
conn.Close();
}

return "1";
}

============================================================>

private void btnAdd_Click(object sender, System.EventArgs e)
{
Db.Info MyInfo = new Info();
ArrayList a = new ArrayList();
a[0] = ddlBigSort.SelectedItem.Value;
a[1] = ddlSmallSort.SelectedItem.Value;
a[2] = txtTitle.Text.Trim();
a[3] = txtSource.Text.Trim();
a[4] = txtContant.Text.Trim();
a[5] = DateTime.Now;
a[6] = "0";
if(MyInfo.AddAll(a) == "1")
{
Response.Write("alert('添加成功!')");
}
else
{
Response.Write("alert('添加失败!')");
}
}

==========================================================>

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index

源错误: 


行 83:  Db.Info MyInfo = new Info();
行 84:  ArrayList a = new ArrayList();
行 85:  a[1] = ddlBigSort.SelectedItem.Value;
行 86:  a[2] = ddlSmallSort.SelectedItem.Value;
行 87:  a[3] = txtTitle.Text.Trim();
 

源文件: c:\inetpub\wwwroot\webapplicationkflash\admin_addinfo.aspx.cs    行: 85 
中间部分改成这样却可以,是什么道理???
private void btnAdd_Click(object sender, System.EventArgs e)
{
Db.Info MyInfo = new Info();
ArrayList a = new ArrayList();
a.Add(ddlBigSort.SelectedItem.Value);
a.Add(ddlSmallSort.SelectedItem.Value);
a.Add(txtTitle.Text.Trim());
a.Add(txtSource.Text.Trim());
a.Add(txtContant.Text.Trim());
a.Add(DateTime.Now);
a.Add("0");
if(MyInfo.AddAll(a) == "1")
{
Response.Write("<script>alert('添加成功!')</script>");
}
else
{
Response.Write("<script>alert('添加失败!')</script>");
}
}
up
程序代码