2
Answers

Generate due date - beginner - Error

shshva

shshva

13y
1.8k
1
Good Day Everyone..

since i have two tables..how to read from one table1 to table2..
example..Table1 with thousand over records various types of recurrance and due pattern

table1
ID Reccurance Duepattern
1 Monthly 10
2 Yearly 25
3 Monthly 15
4 Weekly


output must b like this in table2

History_ID Date_Due
1 10/1/2011
1 10/2/2011
1 10/3/2011
1 10/4/2011
1 10/5/2011
1 10/6/2011
1 10/7/2011
1 10/8/2011
1 10/9/2011
1 10/10/2011
1 10/11/2011
1 10/12/2011


why dis output like this :reason History ID = ID and since reccurance yearly its read yearly and 25= duepatten

2 25/1/2011
2 25/1/2012
2 25/1/2013
2 25/1/2014
2 25/1/2015
2 25/1/2016
2 25/1/2017
2 25/1/2018
2 25/1/2019
2 25/1/2020


why dis output like this :reason History ID = ID and since reccurance Monthly its read Monthly and 15= duepatten

3 15/1/2011
3 15/2/2011
3 15/3/2011
3 15/4/2011
3 15/5/2011
3 15/6/2011
3 15/7/2011
3 15/8/2011
3 15/9/2011
3 15/10/2011
3 15/11/2011
3 15/12/2011

my coding's output not as i expected.. Please guide me

my coding..
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;



namespace PreventiveUpdater
{


public partial class Form1 : Form
{

SqlConnection SqlConn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=system;Data Source=LAPTOP-SUJITA\\SQLEXPRESS");
SqlCommand SqlComm = new SqlCommand();

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConn.Open();
SqlComm.Connection = SqlConn;
SqlComm.CommandText = "SELECT * FROM preventive";

SqlDataReader reader = SqlComm.ExecuteReader();

while (reader.Read())
{
string id;
id = reader["ID"].ToString();
}

//dataGridView1.DataSource = reader;
//dataGridView1

//SqlDataAdapter dataAdapter = new SqlDataAdapter(SqlComm);

//SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

//BindingSource dbBindSource = new BindingSource();



//// Populate a new data table and bind it to the BindingSource.

//DataTable table = new DataTable();

//table.Locale = System.Globalization.CultureInfo.InvariantCulture;

//dataAdapter.Fill(table);

//dbBindSource.DataSource = table;



//// Resize the DataGridView columns to fit the newly loaded content.

//dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);

//// you can make it grid readonly.

//dataGridView1.ReadOnly = true;

//// finally bind the data to the grid

//dataGridView1.DataSource = dbBindSource;


SqlConn.Close();



}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
//Console.WriteLine(ex.ToString());
}
}

private void Button2_Click(object sender, EventArgs e)
{
try
{

SqlConn.Open();
SqlComm.Connection = SqlConn;
SqlComm.CommandText = "select * From preventive Where Recurrence ='Monthly' AND DuePattern ='26'";




SqlDataReader reader = SqlComm.ExecuteReader();

while (reader.Read())
{
//your outputs to create dataTable:
int ID = 1;
string Recurrence = "Monthly";
string DuePatten = "26";
string Date_Done ;
string SME;
string remarks;
string status;





//if Duepattern is a string, will change it to integer:
int _DuePattern = int.Parse(DuePatten);

DataTable table = new DataTable("preventiveRecord");
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Date_Done", typeof(int));
table.Columns.Add("Date_Due", typeof(DateTime));
table.Columns.Add("SME", typeof(int));
table.Columns.Add("Status", typeof(int));
table.Columns.Add("History_ID", typeof(int));
table.Columns.Add("Remark", typeof(int));


DataRow row;
if (Recurrence == "Monthly")
{
for (int i = 1; i <= 12; i++)
{
DateTime date = new DateTime(DateTime.Now.Year, i, _DuePattern);
row = table.NewRow();
row["History_ID"] = ID;
row["Date_Due"] = date;
table.Rows.Add(row);


}




}

BindingSource source = new BindingSource();
source.DataSource = table;

dataGridView1.DataSource = source;



}

SqlConn.Close();



}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
//Console.WriteLine(ex.ToString());
}
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

}




}
}
Answers (2)