1

我是使用 C# 的 Asp.net 的初学者,主要在 Web 表单中工作,大多数时候当我执行任务时,我在不同的类中一遍又一遍地重复相同的代码,例如,为了插入数据,我必须正确插入每个特定表单的功能。我想要的是有一个通用类,其中插入、删除、选择和更新的这些方法是通用定义的,我只需要实例化这些对象,我提交表单并通过参数将数据传递给这些对象。在 Php 中,我们称它为 dbClass,我不知道它在 asp.net 中的名称,它基本上是在应用程序中发生的每个 crud 操作中使用的单个类。如果有人可以帮助我,将不胜感激。提前致谢

4

2 回答 2

4

我建议您使用 ORM,如Entity Framework和 ( Generic ) Repository Pattern。我相信这将满足您的需求,并将帮助您执行DRY原则。

此外,如果您使用的是 ASP.NET Web Forms 4.5,您应该看看新的模型绑定功能。

于 2013-07-02T22:23:34.453 回答
1
namespace Steps
{
    public class conn
    {
        SqlConnection con = new SqlConnection();
        SqlCommand cmd = new SqlCommand();

        public conn()
        {
            con.ConnectionString = "Data Source=LCCSERVER;Initial Catalog=steps;User ID=sa;Password=admin123";
            cmd.Connection = con;
        }

        public void openconnection()
        //using for eliminating the connection error
        {

            if (con.State == ConnectionState.Open)
            {
                con.Close();
            }
            con.Open();
        }

        public SqlCommand getcommand
        {
            get
            {
                return cmd;
            }
        }
    }



    public static class crud
    {
        static conn c = new conn();
        public static string insupdel(string spname, params Object[] values)

        {
            c.openconnection();
            c.getcommand.CommandType = CommandType.StoredProcedure;
            c.getcommand.CommandText = spname;
            SqlCommandBuilder.DeriveParameters(c.getcommand);
            int i = 0, j = 0;
            foreach (SqlParameter spram in c.getcommand.Parameters)
            {
                if (j > 0)
                {
                    spram.Value = values[i];
                    i++;
                }
                j++;
            }
            c.getcommand.ExecuteNonQuery();
            return "success";
        }

        public static DataSet getdata(string spname, params Object[] values)

        {
            c.openconnection();
            c.getcommand.CommandType = CommandType.StoredProcedure;
            c.getcommand.CommandText = spname;
            SqlCommandBuilder.DeriveParameters(c.getcommand);
            int i = 0, j = 0;
            foreach (SqlParameter spram in c.getcommand.Parameters)
            {
                if (j > 0)
                {
                    spram.Value = values[i];
                    i++;
                }
                j++;
            }

            SqlDataAdapter ad = new SqlDataAdapter();
            DataSet ds = new DataSet();
            ad.SelectCommand = c.getcommand;
            ad.Fill(ds);
            return ds;
        }
    }
}
于 2019-11-15T02:08:21.403 回答