Проблема с структурами данных в asp.net/c# - PullRequest
0 голосов
/ 29 марта 2011

У меня есть веб-приложение для электронной коммерции, которое позволяет пользователям покупать программные компоненты на моем веб-сайте.Я получаю номер счета и название программного компонента, который был куплен пользователем из таблицы UserTransactionHistory на сервере SQL.Я храню их в arraylist с помощью класса SoftwareTitles

 public class SoftwareTitles
{
    string softwareTitle;
    string invoiceNumber;

    public SoftwareTitles(string softwareTitle, string invoiceNumber)
    {
        this.softwareTitle = softwareTitle;
        this.invoiceNumber = invoiceNumber;
    }

    string InvoiceNumber
    {           
        get
        {
            return this.invoiceNumber;
        }
    }

    string SoftwareTitle
    {
        get
        {
            return this.softwareTitle;
        }
    }
}

}

И таким образом добавляю этот класс в arraylist.

ConnectionToSql con1 = new ConnectionToSql();
        string connectionString = con1.ConnectionStringMethod();
        SqlConnection sqlConnection = new SqlConnection(connectionString);
        SqlCommand cmd2 = new SqlCommand("SelectionOfSoftwareTitles", sqlConnection);
        cmd2.CommandType = CommandType.StoredProcedure;
        sqlConnection.Open();
        SqlDataReader dr2 = cmd2.ExecuteReader();

        if (dr2.HasRows)
        {
            while (dr2.Read())
            {
                String softwareTitle = (String)dr2[0];
                String invoiceNumber = (String)dr2[1];
                softwareTitlesArray.Add(new SoftwareTitles(softwareTitle, invoiceNumber));
                int i = 0;

            }

        }

        sqlConnection.Close();
        dr2.Close();

Но когда я хочу получить все названия программ, которые связаны с определенным номером счета.Я не могу это сделать.

Я делаю это правильно?Подходит ли arraylist структура данных для такой операции?Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 29 марта 2011

Я бы лично использовал объект неуниверсального списка.

Чтобы объявить:

List<Software> softwareTitles= New List<Software>();

И программное обеспечение объекта:

if (dr.HasRows)
        {
            while (dr.Read())
            {
                string title = dr["TITLE_COLUMN"];
                int invoice = dr["INVOICE_COLUMN"];
                Software s = new Software();
                s.Title = title;
                s.Invoice = invoice;
                softwareTitles.add(s);

            }

        }

, а затем вы можетепросмотрите список, используя простой цикл и счетчик, например, softwareTitles (i), или вы даже можете использовать LINQ для выполнения всего, что вы хотите.например,

for (i=0; i<softwareTitles.Count;i++)
{
  if (softwareTitles[i].Invoice==213)
  {
    Console.WriteLine(softwareTitles[i].Title);
  }
}

Что-то в этом роде.Извините, я в последнее время пользуюсь VB.NET, поэтому мой C # стал ржавым.Но это кажется правильным

1 голос
/ 29 марта 2011

Используйте универсальную коллекцию списков для добавления объектов и Linq для запроса записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...