Reputation: 216
I have created the following:
public class Members
{
public string Member { get; set; }
public string Number{ get; set; }
public Members(string _member, string _num)
{
Member= _member;
Number = _num;
}
}
and calling it from another class:
int countRows = 0;
SqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
countRows += 1;
Members sample1 = new Members ("170128", "REG");
Members sample2 = new Members ("170129", "REG");
Members sample3 = new Members ("170130", "TAQ");
List<Members> listOfMembers = new List<Members>();
listOfMembers.Add(sample1);
listOfMembers.Add(sample2);
listOfMembers.Add(sample3);
foreach (var item in listOfMembers)
{
Response.Write("Member: " + item.Member + " Number: " + item.Number +"<br />");
}
}
dataReader.Close();
dataReader.Dispose();
con.Close();
It works. Except, I want to create and add sample on the fly, eg:
Members sample + countRows = new Members(datareader["value1"], datareader["value2"])
This does not work. The int countRows and the object sample are not compatible. How do I implement something similar so that sample1, sample2, etc., is created on the fly and similarly added to the list?
Upvotes: 0
Views: 1163
Reputation: 346
Use Collection or Array to hold your classes
List<Members> sample = new List<Members>();
And in cycle do
sample.Add(new Members(dataReader.GetInt(0), dataReader.GetInt(1)))
Note: GetInt() is my guess. Use GetString() or whatever your types.
Or in native formats
sample.Add(new Members(dataReader["columnName"], dataReader["columnName"]))
Upvotes: 2