解決方案一
新建C#項目,在app.config中添加了appSettings項,運行時出現”配置系統未能初始化”的錯誤,MSDN裏寫到,如果配置文件中包含 configSections 元素,則 configSections 元素必須是 configuration 元素的第一個子元素。”,將自己添加的appSettings放到configSections 後,則正常。
解決方案二
在單元測試中出現了這個異常,原因是:
由於在測試項目中沒有添加配置文件(只有前臺網站項目中添加了 web.config)
//通過配置文件獲取連接字符串
public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings[“MyPetShopConnection”].ConnectionString;
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int result = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return result;
}
/// <summary>
/// 輔助函數
/// </summary>
/// <param name="cmd">命令對象</param>
/// <param name="conn">連接對象</param>
/// <param name="trans">事務對象</param>
/// <param name="cmdType">命令類型</param>
/// <param name="cmdText">命令字符串</param>
/// <param name="cmdParms">命令參數</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if(conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
if (trans != null)
cmd.Transaction = trans;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
// 解決方法:添加App.config