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