Я изо всех сил пытаюсь создать класс, к которому я могу получить доступ из других классов, которые будут доступны во всем моем приложении. Я новичок в создании классов и ценю любые логические советы. В конечном счете, я хотел бы получить доступ к значениям «checkpoint1-5» в «LUSDschoolDates» как «chk1», «chk2» и т. д. Не уверен, правильно ли я заполняю данные или лучше использовать List‹>?? Подчеркнутая часть указывает на область, в которой я борюсь (что в основном говорит мне, что я не могу получить доступ) и где мне нравится, чтобы это работало. Целью проекта является создание серверной страницы администрирования, на которой пользователь может вставлять данные о дате и времени, и эти значения должны быть доступны во всем приложении.
public class checkpoint
{
public string checkpoint1 { get; set; }
public string checkpoint2 { get; set; }
public string checkpoint3 { get; set; }
public string checkpoint4 { get; set; }
public string checkpoint5 { get; set; }
}
public class myCheckpoints
{
public static string Checkpoints()
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["lusdMembership"].ConnectionString))
{
SqlCommand cmd = new SqlCommand("SELECT chk1, chk2, chk3, chk4, chk5 FROM checkpoints", connection);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
checkpoint c = new checkpoint();
c.checkpoint1 = reader["chk1"].ToString();
c.checkpoint2 = reader["chk2"].ToString();
c.checkpoint3 = reader["chk3"].ToString();
c.checkpoint4 = reader["chk4"].ToString();
c.checkpoint5 = reader["chk5"].ToString();
}
return Checkpoints();
}
}
}
public class LUSDschoolDates
{
public static DateTime chk1 = new DateTime(checkpoint.checkpoint1);
}
ИСПОЛЬЗОВАНИЕ СПИСКА (это не похоже на «контрольную точку возврата»;) контрольная точка общественного класса { public string checkpoint1 { get; набор; } общедоступная строка checkpoint2 { получить; набор; } общедоступная строка checkpoint3 { получить; набор; } общедоступная строка checkpoint4 { получить; набор; } общедоступная строка checkpoint5 { получить; набор; } }
public class myCheckpoints
{
public List<checkpoint> GetDate(string chDate)
{
List<checkpoint> Checkpoints = new List<checkpoint>();
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["lusdMembership"].ConnectionString))
{
SqlCommand cmd = new SqlCommand("SELECT chk1, chk2, chk3, chk4, chk5 FROM checkpoints", connection);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
checkpoint c = new checkpoint();
c.checkpoint1 = reader["chk1"].ToString();
c.checkpoint2 = reader["chk2"].ToString();
c.checkpoint3 = reader["chk3"].ToString();
c.checkpoint4 = reader["chk4"].ToString();
c.checkpoint5 = reader["chk5"].ToString();
}
return checkpoint;
}
}
checkpoint
- это тип, а не список. Вы должны вернутьCheckpoints
. Однако вы никогда не добавляете какие-либо контрольные точки в список, поэтому список будет пустым. На самом деле это вопрос о синтаксисе C#, а не вопрос ASP.NET или SqlDataReader. Кстати, вам, вероятно, следует использовать правильный регистр для имен типов и полей, чтобы избежать путаницы, например,Checkpoint
для типа,checkpoints
для списка. - person Panagiotis Kanavos   schedule 03.08.2016