使用C#在asp.net中进行CRUD操作的泛型类

时间:2013-07-02 22:19:25

标签: asp.net

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

2 个答案:

答案 0 :(得分:4)

我建议您使用Entity Framework和(GenericRepository Pattern之类的ORM。我相信这将符合您的需求,并将帮助您执行DRY原则。

此外,如果您使用的是ASP.NET Web Forms 4.5,则应该查看新的Model Binding功能。

答案 1 :(得分:0)

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;
        }
    }
}