1,105,310 Community Members

How to make class act as a database

Member Avatar
ryan.khan06
Newbie Poster
3 posts since Oct 2011
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Hi guys, quick question, my objective is to make class somehow hold all values that i'm using in the program. I'd like the class to act as a database, if that's possible. My only problem is that, i'm passing an array from the main form to the class, and that array contains random numbers that has it's respective meaning in the database. Each number has 3 properties that i want to get/select. It's form my thesis. Any answer will be much appreciated. Here's an example:

in Form1:

myClass callClass = new myClass() // class instantiation


string[] rndNum = new string[47] //array for random numbers


for (int i = 0; i < 47; i++)
{
while (true)
{
int index = rnd.Next(0, 47);
if (!ifSame[index])
{
ifSame[index] = true;
rndNum = index.ToString();
break;
}
}
}
callClass.database(rndNum);

myClass:

public void database (string [] numbers)
{
int prop1 = 0;
int prop2 = 0;
int prop3 = 0;
for (int i = 0; i < numbers.Length; i++)
{
//this part will read the array passed from Form1
//also in this part, as the numbers from the array are being read, there
//respective properties are given to them.
//Somewhat like this,
// if (numbers == "0")
// {
//     prop1 = 1;
//     prop2 = 2;
//     prop3 = 3;
// }
//also i'd like the 3 properties(prop1, prop2, prop3) to be passed to
//Form1 along with it's respective value from the numbers array (#0-47)
}
}
Member Avatar
thines01
Postaholic
2,420 posts since Oct 2009
Reputation Points: 389 [?]
Q&As Helped to Solve: 413 [?]
Skill Endorsements: 10 [?]
Team Colleague
Featured
 
0
 

Yes, it's possible, but you will eventually mimmick the behavior of a Hash Table (or Dictionary) of of a DataSet and DataTable (the HARD way).

Member Avatar
lolafuertes
Posting Shark
912 posts since Oct 2008
Reputation Points: 145 [?]
Q&As Helped to Solve: 196 [?]
Skill Endorsements: 7 [?]
 
0
 

I would suggest to create a class for the numbers structure and properties like:

Partial Class NumberAndProperties : IComparer {
  public readonly int Key;
  public readonly int Property1;
  public readonly int Property2,
  public readonly int Property3;
  void New(int key, int property1, int property2, int property3){
    Key = key;
    Property1 = property1;
    Property2 = property2;
    Property3 = property3;
  }
  int IComparer.Compare(object a, object b){
    NumberAndProperties A = (NumberAndProperties) a;
    NumberAndProperties B = (NumberAndProperties) b;
    If (A.Key > B.Key) return 1;
    if (A.Key < B.Key) return -1;
   return 0;
  }
}

Then use this class for a List<NumberAndProperties> to hold the data. To do that
add

public List<NumberAndProperties> TheNumbers = new List<NumberAndProperties>();

inside the class, before the public void DataBase and change this piece to:

//this part will read the array passed from Form1
//also in this part, as the numbers from the array are being read, there 
//respective properties are given to them.
//Somewhat like this,
// if (numbers[i] == "0")
// {
// prop1 = 1;
// prop2 = 2;
// prop3 = 3;
NumberAndProperties newNumberAndProperties = new NumberAndProperties(numbers[i], property1Value, Property2Value, property3value);
TheNumbers.Add(newNumberAndProperties);
// }

Then, to retrieve any value, you can use the List<T> methods and properties, and you'll always get a NumberAndProperties class with the Key and the Property 1 to 3.

Hope this helps

Member Avatar
ryan.khan06
Newbie Poster
3 posts since Oct 2011
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I would suggest to create a class for the numbers structure and properties like:

Partial Class NumberAndProperties : IComparer {
  public readonly int Key;
  public readonly int Property1;
  public readonly int Property2,
  public readonly int Property3;
  void New(int key, int property1, int property2, int property3){
    Key = key;
    Property1 = property1;
    Property2 = property2;
    Property3 = property3;
  }
  int IComparer.Compare(object a, object b){
    NumberAndProperties A = (NumberAndProperties) a;
    NumberAndProperties B = (NumberAndProperties) b;
    If (A.Key > B.Key) return 1;
    if (A.Key < B.Key) return -1;
   return 0;
  }
}

Then use this class for a List<NumberAndProperties> to hold the data. To do that
add

public List<NumberAndProperties> TheNumbers = new List<NumberAndProperties>();

inside the class, before the public void DataBase and change this piece to:

//this part will read the array passed from Form1
//also in this part, as the numbers from the array are being read, there 
//respective properties are given to them.
//Somewhat like this,
// if (numbers[i] == "0")
// {
// prop1 = 1;
// prop2 = 2;
// prop3 = 3;
NumberAndProperties newNumberAndProperties = new NumberAndProperties(numbers[i], property1Value, Property2Value, property3value);
TheNumbers.Add(newNumberAndProperties);
// }

Then, to retrieve any value, you can use the List<T> methods and properties, and you'll always get a NumberAndProperties class with the Key and the Property 1 to 3.

Hope this helps

thanks, but i cnt quite understand where to put the class for the number structures, also
the list declaration..and what is this for?

int IComparer.Compare(object a, object b){
NumberAndProperties A = (NumberAndProperties) a;
NumberAndProperties B = (NumberAndProperties) b;
If (A.Key > B.Key) return 1;
if (A.Key < B.Key) return -1;
return 0;
}

i just want to capture the properties of the number that i stored at my array

Member Avatar
lolafuertes
Posting Shark
912 posts since Oct 2008
Reputation Points: 145 [?]
Q&As Helped to Solve: 196 [?]
Skill Endorsements: 7 [?]
 
0
 

I'll try to answer your questions:
1) Where to put the class? I normally create each class in a separate source for that class. Obviously you can add the class in the same source you already have.
2) The IComparer.Compare will permit to sort the list or to verify if a key already exists.
3) The List usage is based on specialized list that will know the class structure, allowing the direct access to any list item key or property.

Hope this helps

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
View similar articles that have also been tagged: