1
我收到以下錯誤返回值:並非所有的代碼路徑數組
Not all code paths return a value for Array
這裏是我的代碼:
public Product[] LoadAllDatas()
{
SqlConnection con = new SqlConnection("Server=####; Integrated Security=true;Database=Store");
SqlCommand cmd = new SqlCommand("usp_LoadTestData");
cmd.Connection = con;
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
return new Product[]
{
new Product() { ProductId = Convert.ToInt32(dr["Id"]), Name = dr["Name"].ToString(), AdminContent = dr["AdminComment"].ToString(), ProductTemplate = dr["ProductTemplateId"].ToString(), CreatedOnUtc = Convert.ToDateTime(dr["CreatedOnUtc"]) }
};
}
con.Close();
con.Dispose();
}
如果沒有行到上環,所以'while'循環不運行會發生什麼? –
讓我們把返回類型放在一邊。您正在使用while循環並返回最佳情況下的一個項目。閱讀關於IEnumerables和yield關鍵字的內容,因爲它看起來是一個很好的使用它們的地方,或者簡單地返回而不是返回第一行,將數據添加到數組並返回整個數組。 –