在表中插入数据之前检查数据的最佳方法是什么? [英] what is the best way to check the data before the insert the data in the table?

查看:56
本文介绍了在表中插入数据之前检查数据的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在课程表中:

courseNum不允许null

courseName允许null

creditHours允许null

description allow null



In the Course Table:
courseNum not allow null
courseName allow null
creditHours allow null
description allow null

class DataAccess
    {
        public static string connstr = 
            ConfigurationManager.ConnectionStrings["STDBCONN"].ConnectionString;
    
        public static object GetSingleAnswer(string sql)
        {
            object obj = null;
            SqlConnection conn = new SqlConnection(connstr);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                obj = cmd.ExecuteScalar();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return obj;
        }

        public static int InsUpDel(string sql)
        {
            int rows = 0;
            SqlConnection conn = new SqlConnection(connstr);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                rows = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return rows;
        }

        public static DataTable GetDataTable(string sql)
        {
            DataTable dt = new DataTable();
            SqlConnection conn = new SqlConnection(connstr);
            try
            {
                conn.Open();
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                da.Fill(dt);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return dt;
        }
    }







class Course
    {
        string courseNum;
        public string CourseNum
        {
            get { return courseNum; }
            set { courseNum = value; }
        }
        string courseName;
        public string CourseName
        {
            get { return courseName; }
            set { courseName = value; }
        }
        int creditHours;
        public int CreditHours
        {
            get { return creditHours; }
            set { creditHours = value; }
        }
        string description;
        public string Description
        {
            get { return description; }
            set { description = value; }
        }







class CourseRepository
    {
        List<Course> COList = new List<Course>();

        public List<Course> GetAllCourse()
        {
            COList.Clear();
            try
            {
                string sql = "select * from courses";
                DataTable da = DataAccess.GetDataTable(sql);
                foreach (DataRow dr in da.Rows)
                {
                    Course co = new Course();
                    co.CourseNum = (string)dr["CourseNum"];
                    co.CourseName = (string)dr["CourseName"];
                    co.CreditHours = (int)dr["CreditHours"];
                    if (!DBNull.Value.Equals(dr["Description"]))
                        co.Description = (string)dr["Description"];

                    COList.Add(co);
                }

            }
            catch (Exception)
            {
                throw;
            }
            return COList;
        }

        
        public int InsertCourse(string CourseNum, string CourseName, string CreditHours, string Description)
        {
            string sql = "select CourseNum from courses where CourseNum='" + CourseNum + "'";
            string foundCourseNum = (string)DataAccess.GetSingleAnswer(sql);

            if (CourseNum != foundCourseNum)
            {
                sql = "insert into courses (CourseNum,CourseName,CreditHours,Description) values ('" + CourseNum + "','" + CourseName + "'," + CreditHours + ",'" + Description + "')";
                return DataAccess.InsUpDel(sql);
            }
            return 0;
        }

        public int UpdateCourse(string CourseNum, string CourseName, string CreditHours, string Description)
        {
            string sql = "update courses set CourseName='" + CourseName + "',CreditHours=" + CreditHours + ",Description='" + Description + "' where CourseNum='" + CourseNum + "'";
            return DataAccess.InsUpDel(sql);
        }

        public int DeleteCourse(string CourseNum)
        {
            string sql = "delete from courses where CourseNum='" + CourseNum + "'";
            return DataAccess.InsUpDel(sql);
        }


    }







class CourseBusiness
   {
       CourseRepository _crep = new CourseRepository();

       public List<Course> GetAllCourse()
       {
           return _crep.GetAllCourse();
       }

       public int InsertCourse(string CourseNum, string CourseName, string CreditHours, string Description)
       {
               return _crep.InsertCourse(CourseNum, CourseName, CreditHours, Description);
       }

       public int UpdateCourse(string CourseNum, string CourseName, string CreditHours, string Description)
       {
           return _crep.UpdateCourse(CourseNum, CourseName, CreditHours, Description);
       }

       public int DeleteCourse(string CourseNum)
       {
           return _crep.DeleteCourse(CourseNum);
       }
   }





形式---->>>





In the form---->>>

private void btnAdd_Click(object sender, EventArgs e)
{
    int rows = cou.InsertCourse((txtCourseNum.Text).ToUpper(), txtCourseName.Text, txtCreditHours.Text, txtDescription.Text);

    if(rows > 0)
    {
        txtCourseNum.Text = "";
        txtCourseName.Text = "";
        txtDescription.Text = "";
        txtCreditHours.Text = "";

        MessageBox.Show("Added");

        btnUpdate.Enabled = false;
        btnDelete.Enabled = false;

        dgv.DataSource = null;
        dgv.DataSource = cou.GetAllCourse();
        dgv.Refresh();
    }
    else if (rows == 0)
        MessageBox.Show("This Course Number already exists ..");

}

推荐答案

最好的方法是使用Javascript或ASP在UI中进行所有这些验证。净验证控件,如必需表达式验证控件。

检查以下链接 -

ASP.NET - 验证器 [ ^ ]

使用客户端验证JavaScript [ ^ ]



您可以在属性层中仔细检查这些,如下所示 -



The best way is to do all these validation in the UI using Javascript or ASP.Net validation controls like Required Expression Validation control.
Check following links-
ASP.NET - Validators[^]
Client Side Validation using JavaScript[^]

You can double check these in the Property layer too like following -

string courseNum;
public string CourseNum
{
    get { return courseNum; }
    set {
          if(value==null) throw new ArgumentException("Course Num can't be null.");
          courseNum = value;
        }
}





希望有所帮助:)



Hope it helps :)


这篇关于在表中插入数据之前检查数据的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆