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