Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据集和数据表的问题_C#_Asp.net - Fatal编程技术网

C# 数据集和数据表的问题

C# 数据集和数据表的问题,c#,asp.net,C#,Asp.net,我正在研究一种从学生数据库中提取学生成绩的方法,其中所有年份和班级的所有科目成绩都存储在一个表中,因此此函数将提取特定部门班级的成绩,并将其存储在数据集中的数据表中,这就是我到目前为止编写的代码 public void Button1_Click(object sender, EventArgs e) { con.Open(); cmd.CommandText = "SELECT Course.Course_code, Course.Course_name, co

我正在研究一种从学生数据库中提取学生成绩的方法,其中所有年份和班级的所有科目成绩都存储在一个表中,因此此函数将提取特定部门班级的成绩,并将其存储在数据集中的数据表中,这就是我到目前为止编写的代码

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>

public void按钮1\u单击(对象发送者,事件参数e)
{
con.Open();
cmd.CommandText=“选择Course.Course\u code,Course.Course\u name,courseyear.level从课程内部连接courseyear ON Course.courseyear.Course\u code,其中(courseyear.dep='“+dep.SelectedValue+”)和(courseyear.year.year='+year.SelectedValue+”)和(courseyear.year.year='“+year.SelectedValue+”)(courseyear.level='“+level2.SelectedValue+”)”;
da=新的SqlDataAdapter(cmd.CommandText,con);
ds.Clear();
da.填充(ds,“垃圾”);
cmd.CommandText=“选择Course.Course\u code,Course.Course\u name,courseyear.level从课程内部连接courseyear ON Course.courseyear.Course\u code,其中(courseyear.dep='“+dep.SelectedValue+”)和(courseyear.year.year='+year.SelectedValue+”)和(courseyear.year.year='“+year.SelectedValue+”)(courseyear.level='“+level2.SelectedValue+”)”;
da=新的SqlDataAdapter(cmd.CommandText,con);
da.填充(ds,“接头”);
ds.表。添加(“res”);
cnum=ds.Tables[“junk”].Rows.Count;
//l7de hna Kwesen
ds.Tables[“res”].Columns.Add(新数据列(“索引”,typeof(字符串));
ds.Tables[“res”].Columns.Add(新数据列(“名称”,typeof(字符串));
//int rnum=ds.Tables[“res”].Rows.Count;
对于(int x=0;x

我的问题是,它一直告诉我students for loop上的0位置没有行

您可能需要使用两个不同的数据适配器来填充2个不同的数据集。如果您查看它,您正在重新实例化数据适配器,这将重置以前加载的“垃圾邮件”数据集。因此,当您尝试访问“垃圾邮件”时您什么也看不到。请尝试不实例化或使用不同的适配器。

首先,for循环是一个无止境的循环。您不增加
y
变量。请参阅此处的for循环头
了解(int y=0;y
谢谢,我修复了这个问题,但我仍然使用了两次垃圾表,因为我不再需要以前的结果了