索引绑定错误

时间:2013-10-30 15:29:26

标签: c#

当表单加载时,我希望学生表中的所有ID都插入到另一个表中。 但是,当我运行程序ID时,表中只插入1个ID,但是当ID为2时 插入它会出现错误:

  

指数超出范围。必须是非负数且小于集合的大小。

所以任何人都可以帮助我

List<string> files = new List<string>();

query =  " select student_no from student_registration";

cmd = new SqlCommand(query, con);

con.Open();

dr = cmd.ExecuteReader();

while (dr.Read())
{
   files.Add(dr[0].ToString());
}

con.Close();

for (int i = 1; i <= files.Count; i++)
{
    query = "insert into student_fees values(" + files[i] + ",'0','0')";

    cmd = new SqlCommand(query, con);

    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
}

1 个答案:

答案 0 :(得分:2)

for (int i = 1; i <= files.Count; i++)

必须是

for (int i = 0; i < files.Count; i++)

改进它,你可以使用foreach循环:

foreach (string file in files)
{
    query = "insert into student_fees values(" + file + ",'0','0')";

当我们在这里时,为你的陈述研究参数绑定。想象一下如果在你的列表中,一个元素是

的声明
"X,'0','0'); DROP DATABASE; --"