Мне интересно, как я могу избежать записи cmd.Parameter.addwithvalue снова и снова для всех страниц. Короче говоря, что-то вроде универсальной функции вставки. Я не использую Entity Framework, поэтому обычная общая функция добавления сущностей не поможет.
До сих пор я пробовал:
public string AddCampus(Campus objCampus)
{
//string Params = "@Activity,@Name,@PhoneNo,@Email,@Logo,@StatusId,@CountryId,@CityId,@StateId,@DistrictId,@ClientId,@Pincode,@AddressLine1,@AddressLine2,@Area,@Street";
//string Values = "Add" + ',' + objCampus.Name + ',' + objCampus.PhoneNo + ',' + objCampus.Email + ',' + objCampus.Logo + "," + objCampus.StatusId + ","+objCampus.CampusAddress.CountryId + "," + objCampus.CampusAddress.CityId + "," + objCampus.CampusAddress.StateId + "," + objCampus.CampusAddress.DistrictId + "," + objCampus.ClientId + "," + objCampus.CampusAddress.Pincode + "," + objCampus.CampusAddress.AddressLine1 + "," + objCampus.CampusAddress.AddressLine2 + "," + objCampus.CampusAddress.Area + "," + objCampus.CampusAddress.Streat;
//return Connection.CommandExecuteNonQuery(Params, Values,true, "sprCampus");
}
Я сделал это, и это работает, но я только что прокомментировал это. Это была реализация:
public static string CommandExecuteNonQuery(string Parameters,string Values,bool IsStoredProcedure,string command)
{ string[] Parameter = Parameters.Split(',');
string[] Value = Values.Split(',');
string s_Message = "";
if (Parameter.Count() < Value.Count())
{
s_Message = "Number of Paramters Supplied is less than Number of Values Supplied.";
return s_Message;
}
else if (Parameter.Count() > Value.Count())
{
s_Message = "Number of Values Supplied is less than Number of Parameters Supplied.";
return s_Message;
}
else
{
SqlCommand cmd = new SqlCommand();
for (var i = 0; i < Parameter.Count(); i++)
{
cmd.Parameters.AddWithValue(Parameter[i], Value[i]);
}
cmd.CommandText = command;
if (IsStoredProcedure)
cmd.CommandType = CommandType.StoredProcedure;
string saveSuccess = string.Empty;
int execute = 0;
using (SqlConnection con = new SqlConnection(sqlConStr))
{
try
{
con.Open();
cmd.Connection = con;
execute = cmd.ExecuteNonQuery();
if (execute > 0)
{
s_Message = "Record Saved";
}
else
s_Message = "Operation Failed";
}
catch (Exception excp)
{
s_Message = excp.Message;
}
}
}
return s_Message.ToString();
}
Так что я просто ищу лучшее решение, чем это.