如何创建数据库表类

本文关键字:数据库 创建 何创建 | 更新日期: 2023-09-27 18:26:13

我在c#中有一个关于医院系统的项目,该系统包含30个子窗体。

我创建了包含30多个表的数据库。

我创建了这样的数据访问:

namespace emamTree
{
    public  class  DBAccess
    {
        public static string connectionString = ConfigurationManager.ConnectionStrings["TreeFinal"].ConnectionString ;
       public SqlCommand Intialize(string query, params SqlParameter[] prmArray)
        {
                SqlConnection cn = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand(query, cn);
                if (!query.Contains(" "))
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                if (prmArray.Length > 0)
                    cmd.Parameters.AddRange(prmArray);
                cn.Open();
                return cmd;
        }
        public  int ExcuteNonQuery(string query, params SqlParameter[] prmArray)
        {
            try
            {
                SqlCommand cmd = Intialize(query, prmArray);
                int affectedRows = cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                return affectedRows;
            }
            catch (SqlException ex)
            {
                return ex.Number;
            }
        }
        public object ExcuteScalar(string query, params SqlParameter[] prmArray)
        {
            try
            {
                SqlCommand cmd = Intialize(query, prmArray);
                object value = cmd.ExecuteScalar();
                cmd.Connection.Close();
                return value;
            }
            catch (SqlException ex)
            {
                return ex.Number;
            }
        }
        public  SqlDataReader ExcuteReader(string query, params SqlParameter[] prmArray)
        {
                SqlCommand cmd = Intialize(query, prmArray);
                SqlDataReader sqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return sqlDataReader;
        }
        public  DataTable ExcuteDataTable(string query, params SqlParameter[] prmArray)
        {
                SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(query, connectionString);
                if (!query.Contains(" "))
                    sqlDataAdapter.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
                if (prmArray.Length > 0)
                    sqlDataAdapter.SelectCommand.Parameters.AddRange(prmArray);
                DataTable dt = new DataTable();
                sqlDataAdapter.Fill(dt);
                return dt;
        }
        public  DataSet ExcuteDataSet(string query, params SqlParameter[] prmArray)
        {
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(query, connectionString);
            if (!query.Contains(" "))
                sqlDataAdapter.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
            if (prmArray.Length > 0)
                sqlDataAdapter.SelectCommand.Parameters.AddRange(prmArray);
            DataSet ds = new DataSet();
            sqlDataAdapter.Fill(ds);
            return ds;
        }
   }
}

表单中的患者(表中的患者)我创建了保存方法并运行良好:

public void Save()
{
     DBAccess db = new DBAccess();
     db.ExcuteNonQuery("insert into Patients  (FileNum,PatientTypeID,EngName,NationalityID,RelegionID) values  (@FileNum,@PatientTypeID,@EngName,@NationalityID,@RelegionID)",
         new SqlParameter("@FileNum", txtFileNum.Text),
         new SqlParameter("@PatientTypeID", txtPatientTypeID.Text),
         new SqlParameter("@EngName", txtEngName.Text),
         new SqlParameter("@NationalityID", txtNationalityID.Text),
         new SqlParameter("@RelegionID", txtRelegionID.Text)
                         );
}

我的问题是如何为数据库中的每个表创建类?

如何创建数据库表类

使用EntityFramework等现有解决方案。它提供了你需要的所有功能,它会让你的生活比自己写它容易得多(我知道,我已经做到了)。

创建数据访问层是任何应用程序的关键部分。它必须是一个单独的库,这样你就可以在今天和将来的任何项目中使用它。比方说,明天你想把你的windows应用程序转换成网络应用程序!你可以添加DAL库并开始使用它。

话虽如此,建立自己的DAL是一种时间伪装,就像重新发明轮子一样。因此,您需要探索可能适合您需求的可用选项。开箱即用的ORM名为EntityFramework。它的使用非常直接,但性能方面,与手写sql相比速度较慢。还有另一种流行的ORM叫做NHibernate。它最初的对应物Hibernate在java社区中规模很大,但它有一个非常陡峭的学习曲线。

但我喜欢用PetaPoco。它提供了最好的两个世界。ORM+sql。还有其他这样的微ORM,如Dapper、Massive等。你需要尝试它们中的每一个,并选择一个适合你手头的应用程序。

即使在选择了一个符合您需求的框架之后,您也需要创建抽象,以确保以后在需要时可以更改框架。创建一个合适的DAL是一项艰巨的任务,作为一名开发人员,我花了大量时间来把事情做好。你可以自己去探索和发现。祝你好运