当表单加载时,我希望学生表中的所有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();
}
答案 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; --"