Compare rows from the Sqlserver table with the indexes generated in the Array
I have a single TBResult table in Sql Server 2014, with 2,500 saved Results per Contest Number, following format:
private Label[] LabelResult = new Label[15]; // dynamically created
I need to compare each new draw generated in the [LabelResult] array with the database records and know the number of hits I would have with 11 numbers, how many hits with 12 numbers, how many hits with 13 numbers, how many hits with 14 numbers and how many hits there would be with 15 numbers.
like a lottery where you choose 15 numbers from 01 to 25 and win the prize according to the number of numbers you hit.
OBSERVATION: the Numbers entered in the array will not be saved in the Database, I only need the comparison with the Results Table.
I need it to appear like this in the EX Labels:
Summary:
You would have scored 11 hits in 250 contests.
You would have scored 12 hits in 55 contests.
You would have scored 13 hits in 6 contests.
You would have made 14 hits in 1 contest.
You wouldn't have done 15 hits.
try this way but got no results
private int NewCount()
{
ContestResult c = new ContestResult();
int response= 0;
DALConexao cx = new DALConexao(DadosDaConexao.StringDaConexao);
cx.Open();
StringBuilder query = new StringBuilder();
query.AppendLine("SELECT _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _13, _14, _15 form TBResult," );
query.AppendLine("SELECT value FROM " + LabelResult [0].Text + LabelResult [3].Text + LabelResult [2].Text + LabelResult [4].Text + LabelResult [4].Text +
LabelResult [5].Text + LabelResult [6].Text + LabelResult [7].Text + LabelResult [8].Text + LabelResult [9].Text +
LabelResult [10].Text + LabelResult [11].Text + LabelResult [12].Text + LabelResult [13].Text + LabelResult [14].Text );
query.AppendLine(" WITH T AS( SELECT *, MatchCount = (SELECT COUNT(*) FROM(SELECT * FROM(VALUES[_01],[_02], [_03], [_04], [_05],[_06], [_07], [_08], [_09], [_10],[_11], [_12], [_13], [_14], [_15]");
query.AppendLine(")V(V)) T) FROM TBResult) SELECT *, RunningTotalForMatchCount = ROW_NUMBER() OVER(PARTITION BY MatchCount ORDER BY Contest) FROM T ORDER BY Contest");
SqlCommand cmd = new SqlCommand(query.ToString(), cx.ObjetConexao);
cmd.CommandType = System.Data.CommandType.Text;
response= = cmd.ExecuteNonQuery();
cmd.Connection = cx.ObjetConexao;
return response;
}
my Class Generate randoms in order and not repeated.
private void ShowArray()
{
int[] OrganizedNumbers = new int[15];
Array.Sort(OrganizedNumbers);
for (int i = 0; y < 15; i++)
{
LabelResult[i].Text = OrganizedNumbers[i].ToString("D2");
}
}
private void Generator()
{
RandomClass rnd = new RandomClass();
int[] luckyNumbers = rnd.non-repeatingGenerator(15, 1, 25);
Array.Sort(luckyNumbers );
Control[] controls = LabelResult
for (int i = 0; i < controls.Length; i++)
{
int value = (luckyNumbers [i];
controls[i].Text = value.ToString("D2");
}
}`
my button would be like this
private void btnGenerateArray_Click(object sender, EventArgs e)
{
ShowArray();
//int operationsPerformed = NewCount();
//if operationsPerformed == 11)
//{
// lblResult11.Text = operationsPerformed.ToString();
//}
//else if operationsPerformed == 12)
//{
// lblResult12.Text = operationsPerformed.ToString();
//}
//else if operationsPerformed == 13)
//{
// lblResult13.Text = operationsPerformed.ToString();
//}
//else if operationsPerformed == 14)
//{
// lblResult14.Text = operationsPerformed.ToString();
//}
//else if operationsPerformed == 15)
//{
// lblResult15.Text = operationsPerformed.ToString();
//}
}
My model is like this:
public class ContestResult
{
public ContestResult()
{
this.Contest = 0;
this._01 = 0;
this._02 = 0;
this._03 = 0;
...
this._14 = 0;
this._15 = 0;
}
public ContestResult(int Contest, int _01, int _02, int _03, int _04, int _05, int _06, int _07,
int _08, int _09, int _10, int _11, int _12, int _13, int _14, int _15)
{
this.Contest = contest;
this._01 = _01;
this._02 = _02;
this._03 = _03;
...
this._14 = _14;
this._15 = _15;
}
private int contest;
public int Contest
{
get { return this.contest; }
set { this.contest = value; }
}
private int _01;
public int n_01
{
get { return this._01; }
set { this._01 = value; }
}
private int _02;
public int n_02
{
get { return this._02; }
set { this._02 = value; }
}
private int _03;
public int n_03
{
get { return this._03; }
set { this._03 = value; }
}
...
private int _14;
public int n_14
{
get { return this._14; }
set { this._14 = value; }
}
private int _15;
public int n_15
{
get { return this._15; }
set { this._15 = value; }
}
}
I'm new to this topic and I want to learn; I researched a lot and I didn't find something that answers my question.
0 comments:
Post a Comment
Thanks