Я работаю над методом aa, который извлекает результаты студентов из базы данных студентов, в которых все результаты испытуемых за все годы и классы хранятся в одной таблице, поэтому эта функция будет извлекать результаты работы конкретного отдела класс и хранить его в DataTable в наборе данных, так что это код, который я сделал до сих порпроблемы с таблицей данных и таблицей данных
public void Button1_Click(object sender, EventArgs e)
{
con.Open();
cmd.CommandText = "SELECT Course.Course_code, Course.Course_name, courseyear.level FROM Course INNER JOIN courseyear ON Course.Course_code = courseyear.Course_code WHERE (courseyear.dep = '" + dep.SelectedValue + "') AND (courseyear.subdep = '" + subdep.SelectedValue + "') AND (courseyear.year = '" + year.SelectedValue + "') AND (courseyear.level = '" + level2.SelectedValue + "')";
da = new SqlDataAdapter(cmd.CommandText, con);
ds.Clear();
da.Fill(ds, "junk");
cmd.CommandText = "SELECT Course.Course_code, Course.Course_name, courseyear.level FROM Course INNER JOIN courseyear ON Course.Course_code = courseyear.Course_code WHERE (courseyear.dep = '" + dep.SelectedValue + "') AND (courseyear.subdep = '" + subdep.SelectedValue + "') AND (courseyear.year = '" + year.SelectedValue + "') AND (courseyear.level = '" + level2.SelectedValue + "')";
da = new SqlDataAdapter(cmd.CommandText, con);
da.Fill(ds, "subs");
ds.Tables.Add("res");
cnum = ds.Tables["junk"].Rows.Count;
//l7de hna kweseen
ds.Tables["res"].Columns.Add(new DataColumn("index",typeof(string)));
ds.Tables["res"].Columns.Add(new DataColumn("name", typeof(string)));
//int rnum = ds.Tables["res"].Rows.Count;
for (int x = 0; x < cnum-1; x++) {
ds.Tables["res"].Columns.Add(new DataColumn(ds.Tables["junk"].Rows[x].ItemArray[0].ToString(), typeof(string)));
}//done inserting subjects
dr = ds.Tables["res"].NewRow();
ds.Tables["junk"].Clear();
cmd.CommandText = "SELECT id, name FROM Students WHERE (dep ='"+dep.SelectedValue+"') AND (class = '"+level2.SelectedValue+"') AND (subDep ='"+subdep.SelectedValue+"')";
da = new SqlDataAdapter(cmd.CommandText, con);
da.Fill(ds, "junk");
int snum = ds.Tables["junk"].Rows.Count;
for (int x = 0; x < snum; x++)
{
dr = ds.Tables["res"].NewRow();
dr.ItemArray[0] = ds.Tables["junk"].Rows[x].ItemArray[0];
dr.ItemArray[1] = ds.Tables["junk"].Rows[x].ItemArray[1];
//ds.Tables["res"].Rows.Add(dr);
}//done inserting students
ShowPopUpMsg(ds.Tables["res"].Rows.Count.ToString());//for testing
ShowPopUpMsg(snum.ToString());// for testing
for (int x = 0; x < cnum ;x++)//for subjects
{
for (int y =0; y < snum;y++)//for students
{
ds.Tables["junk"].Clear();
cmd.CommandText = "select course_work+final_exam as exp from results where student_id = '" + ds.Tables["res"].Rows[y ].ItemArray[0] + "' and course_code = '"+ds.Tables["subs"].Rows[x]+"' ";
da.Fill(ds, "junk");
ds.Tables["res"].Rows[y].ItemArray[x] = ds.Tables["junk"].Rows[0].ItemArray[0];
}
}
ShowPopUpMsg(ds.Tables["junk"].Rows[0].ItemArray[0].ToString());
}
private void ShowPopUpMsg(string msg)
{
StringBuilder sb = new StringBuilder();
sb.Append("alert('");
sb.Append(msg.Replace("\n", "\\n").Replace("\r", "").Replace("'", "\\'"));
sb.Append("');");
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "showalert", sb.ToString(), true);
}
}</i>
моя проблема в том, что продолжает говорить мне, что нет строки в позиции 0 на студентов для цикла
Прежде всего, ваш цикл for - бесконечный цикл. Вы не увеличиваете свою переменную 'y'. См. Заголовок for for здесь: for (int y = 0; y
Justin
спасибо, я исправил это, но все же –