实际上我最近制作了一个网络应用程序。我有大约20个商店程序[用于插入,更新和删除],大约12个商店程序具有不同数量的程序。
我为每个操作制作了不同的功能,比如下面的代码。
#region Update Comment
public int Update_Comment(string Comment, string Leave_ID)
{
SqlCommand com = new SqlCommand("Update_Comments", con);
com.CommandType =CommandType.StoredProcedure;
com.Parameters.Add("@Comments",SqlDbType.NVarChar,1000).Value =Comment;
com.Parameters.Add("@Leave_ID", SqlDbType.NVarChar, 50).Value = Leave_ID;
con.Open();
int row = com.ExecuteNonQuery();
con.Dispose();
con.Close();
return row;
}
#endregion
#region Updating Leave after approval
public int Updating_Leave(string User_Id, string Leave_Type, int Leave_Applied)
{
SqlCommand com = new SqlCommand("Update_Leave", con);
com.CommandType =CommandType.StoredProcedure;
com.Parameters.Add("@User_Id",SqlDbType.NVarChar,50).Value = User_Id;
com.Parameters.Add("@Leave_Type", SqlDbType.NVarChar, 50).Value = Leave_Type;
com.Parameters.Add("@Leave_Applied", SqlDbType.Int).Value = Leave_Applied;
con.Open();
int row = com.ExecuteNonQuery();
con.Dispose();
con.Close();
return row;
}
#endregion
有两个功能第一个功能是2个参数,第二个功能有3个,但其余的代码是相同的。
所以有可能,在enum和param的帮助下,我们可以减少我所做的功能。所有12个函数都有不同数量的参数。
因为我确实喜欢下面的
enum Operation_Type
{
Insert,
Update,
Delete,
Select
}
public void Do_Insert_Update_Delete(string Proc_Name, Operation_Type Type ,int No_Of_Args , params object[] args)
{
if(Operation_Type.Insert ==Type)
{
SqlCommand com =new SqlCommand(Proc_Name,con);
com.CommandType = CommandType.StoredProcedure;
for(int i=1; i== No_Of_Args; i++)
{
com.Parameters.AddWithValue("sss",args);
}
con.Open();
com.ExecuteNonQuery();
con.Close();
con.Dispose();
}
}
但我不知道如何在此代码中传递Proc_Name
和参数。以及如何在businesslogic层和UI中操作?
请告诉我。