在這個問題中,我將詢問基本的實踐。今天我面臨的情況是,我需要用這段代碼更新數據庫表值。更好的清潔功能代碼或大塊代碼
public void updateUsrProfileName(string usrId, string name)
{
query = "update [db_user].[dbo].[usr_profiles] set [Name][email protected] where [usrid][email protected] ";
try
{
com = new SqlCommand(query,con);
com.Parameters.AddWithValue("@name",name);
com.Parameters.AddWithValue("@usrid",usrId);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
catch (Exception e)
{
con.Close();
throw e;
}
}
我需要重複上面的表中的每一列函數,所以我想出了一個共同的功能,以減少代碼
public void Commonfunction(SqlCommand com, string var)
{
try
{
com.Parameters.AddWithValue("@usrid", var);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
catch (Exception e)
{
con.Close();
throw e;
}
}
,並調用上面的函數類似這樣的
public void updateUsrProfileName(string usrId, string name)
{
query = "update [db_user].[dbo].[usr_profiles] set [Name][email protected] where [usrid][email protected] ";
try
{
com = new SqlCommand(query,con);
com.Parameters.AddWithValue("@name",name);
Commonfunction(SqlCommand com, string name);
}
catch (Exception e)
{
con.Close();
throw e;
}
}
優點: - 乾淨的代碼沒有冗餘。 更少的代碼長度,其在差
缺點非常少: - 由於沒有函數調用提高性能下降,因爲它需要匹配參數,映射函數調用等
在這種情況下非常較小的代碼是多餘的移動是否具有共同的功能,以及在哪些條件下我們應該考慮功能劃分還是不划算。
更新整個記錄。只寫一個'updateUserProfile(UserProfile配置文件)'函數。 – sbenitezb
我認爲這會浪費資源,好像只需要更新名稱爲什麼我應該向上移動整行就會影響性能 –
您每秒更新一次用戶配置文件多少次?不是一次,我猜想。 – sbenitezb