阻止gridview行复制asp.net c#

时间:2017-04-19 09:57:18

标签: c# asp.net gridview

我的网页包含下拉列表,会话[student-id],按钮,gridview

学生将从下拉列表中选择课程并单击注册按钮,然后学生ID和所选课程将添加到gridview。

我的问题是如果他已经注册了这门课程,我该如何向学生显示错误信息。

我的意思是我希望注册按钮检查数据库中是否有该学生选择的课程。

任何帮助??

3 个答案:

答案 0 :(得分:0)

只需在btn_click事件

上使用查询
int stu_id=int.Parse(stu_id.Text);
query="select stu_id from table where username='"+stu_id+"'";
if(query)
//already registered student
else
//new student

答案 1 :(得分:0)

有几种方法可以实现您的目标,但是如果没有看到任何初始代码,那么几乎不可能实现您正在寻找的内容。因此,我将向您介绍其中两种可能的方法。

  1. 在您的情况下处理重复项的第一个也是最明显的方法 将从DropDownList中删除所选课程 注册。这样,用户就无法做到 不止一次选择相同的课程。      代码示例:

            public void RemoveCourseByCourseID(string courseID)
            {
                if(courseList == null || courseList.Items.Count == 0)
                    return;
    
                ListItem courseItem = courseList.Items.FindByValue(courseID);
    
                if(courseItem == null)
                    return;
    
                courseList.Remove(courseItem);
            }
    
  2. 第二种方法是对每一个GridView行进行检查 验证所选课程的不存在。这是一个     您可以为自己的利益使用的示例代码:

        public bool IsCourseExist(string courseID)
        {
            const int columnCourseID = 0;
            foreach(DataRow row in gridView.Rows)
            {
                if(row[columnCourseID].ToString() == courseID)
                    return true;
            }
            return false;
        }
    

答案 2 :(得分:0)

/使用linq ** /
        var result =来自c中的dt.AsEnumerable()                                  c组由新                                  {

                                 RiskDescription2 = c.Field<dynamic>("Risk description "),


                             } into g
                             where g.Count() > 1
                             select new
                             {
                                 g.Key.RiskDescription2,

                                 //  g.Key.Pin,
                                 Noofrec = g.Count()
                             };

                if (result.ToList().Count > 0)
                {
                    lblErrMsg.Visible = true;
                    div_err_log.Visible = false;
                    lblErrMsg.Text = "Risk with same description not allowed.";
                    return;
                }