Я изо всех сил пытаюсь создать класс, к которому я могу получить доступ из других классов, которые будут доступны во всем приложении. Я новичок в создании классов и ценю любые логические советы. В конечном счете, я хотел бы получить доступ к значениям «checkpoint1-5» в «LUSDschoolDates» как «chk1», «chk2» и т. Д. Не уверен, что я правильно заполняю данные или лучше использую List <> ?? Подчеркнутая часть указывает область, в которой я борюсь (что в основном говорит мне, что я не могу получить доступ), и где мне нравится работать. Цель в проекте, чтобы создать заднюю админ страницу конца, где пользователь может ввести данные даты-времени, и эти значения должны быть доступны в течение всего приложения ..Создание класса sqldatareader
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);
}
с использованием списка (это не кажется, что нравится «контрольная точка возврата»;) контрольный пункт общественного класса { общественная строка контрольной точки1 {get; задавать; } общедоступная строка checkpoint2 {get; задавать; } общедоступная строка checkpoint3 {get; задавать; } открытая строка checkpoint4 {get; задавать; } общедоступная строка checkpoint5 {get; задавать; }}
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;
}
}
Вы создаете новый экземпляр контрольно-пропускного пункта, но не возвращаете его. Не должно быть «контрольная точка возврата»; а не «return CheckPoints();»? Кроме того, если вы ожидаете возвращения нескольких объектов из БД, вам нужно будет добавить их в какую-то коллекцию (например, List) –
LDJ
Я опубликовал редактирование с использованием списка (как я изначально сделал на самом деле), но он не " t нравится «контрольная точка возврата»; – Kristofour
«Контрольная точка» - это тип, а не список. Вы должны вернуть «Контрольные точки». Вы никогда не добавляете * никаких контрольных точек в список, поэтому список будет пустым. На самом деле это вопрос синтаксиса C#, а не вопрос ASP.NET или SqlDataReader. Кстати, вы, вероятно, должны использовать надлежащий корпус для имен типов и полей, чтобы избежать путаницы, например, «Контрольная точка» для типа, «контрольные точки» для списка –