有興趣的可以留言討論或者來信討論
應該還存在不少的BUG
也請各位網友們來幫忙除錯一下吧!!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace calendar_multi
{
public partial class Form1 : Form
{
private System.Data.DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
dt.Columns.Add("Monday");
dt.Columns.Add("Tuesday");
dt.Columns.Add("Wednesday");
dt.Columns.Add("Thursday");
dt.Columns.Add("Friday");
dt.Columns.Add("Saturday");
dt.Columns.Add("Sunday");
for (int ii = 0; ii < 9; ii++)
{
System.Data.DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
dr = null;
}
dataGridView1.DataSource = dt;
checkWeek(System.DateTime.Today);
}
private void Form1_Load(object sender, EventArgs e)
{
chkData();
}
public void chkData()
{
chekRowCellHeader();
System.DateTime tt1 = new DateTime();
System.DateTime tt2 = new DateTime();
checkWeek(System.DateTime.Parse(dateTimePicker1.Value.ToString()));
getWeekSE(dateTimePicker1.Value, ref tt1, ref tt2);
getData(tt1, tt2);
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
chkData();
}
private void checkWeek(System.DateTime dt)
{
switch (dt.DayOfWeek.ToString())
{
case "Monday":
dataGridView1.Columns[0].HeaderText = dt.ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.AddDays(1).ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.AddDays(2).ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.AddDays(3).ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.AddDays(4).ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.AddDays(5).ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.AddDays(6).ToShortDateString();
break;
case "Tuesday":
dataGridView1.Columns[0].HeaderText = dt.AddDays(-1).ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.AddDays(1).ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.AddDays(2).ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.AddDays(3).ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.AddDays(4).ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.AddDays(5).ToShortDateString();
break;
case "Wednesday":
dataGridView1.Columns[0].HeaderText = dt.AddDays(-2).ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.AddDays(-1).ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.AddDays(1).ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.AddDays(2).ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.AddDays(3).ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.AddDays(4).ToShortDateString();
break;
case "Thursday":
dataGridView1.Columns[0].HeaderText = dt.AddDays(-3).ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.AddDays(-2).ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.AddDays(-1).ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.AddDays(1).ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.AddDays(2).ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.AddDays(3).ToShortDateString();
break;
case "Friday":
dataGridView1.Columns[0].HeaderText = dt.AddDays(-4).ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.AddDays(-3).ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.AddDays(-2).ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.AddDays(-1).ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.AddDays(1).ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.AddDays(2).ToShortDateString();
break;
case "Saturday":
dataGridView1.Columns[0].HeaderText = dt.AddDays(-5).ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.AddDays(-4).ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.AddDays(-3).ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.AddDays(-2).ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.AddDays(-1).ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.AddDays(1).ToShortDateString();
break;
default:
dataGridView1.Columns[0].HeaderText = dt.AddDays(-6).ToShortDateString();
dataGridView1.Columns[1].HeaderText = dt.AddDays(-5).ToShortDateString();
dataGridView1.Columns[2].HeaderText = dt.AddDays(-4).ToShortDateString();
dataGridView1.Columns[3].HeaderText = dt.AddDays(-3).ToShortDateString();
dataGridView1.Columns[4].HeaderText = dt.AddDays(-2).ToShortDateString();
dataGridView1.Columns[5].HeaderText = dt.AddDays(-1).ToShortDateString();
dataGridView1.Columns[6].HeaderText = dt.ToShortDateString();
break;
}
}
private void chekRowCellHeader()
{
dataGridView1.Rows[0].HeaderCell.Value = "8:00";
dataGridView1.Rows[1].HeaderCell.Value = "9:00";
dataGridView1.Rows[2].HeaderCell.Value = "10:00";
dataGridView1.Rows[3].HeaderCell.Value = "11:00";
dataGridView1.Rows[4].HeaderCell.Value = "13:00";
dataGridView1.Rows[5].HeaderCell.Value = "14:00";
dataGridView1.Rows[6].HeaderCell.Value = "15:00";
dataGridView1.Rows[7].HeaderCell.Value = "16:00";
dataGridView1.Rows[8].HeaderCell.Value = "17:00";
}
private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
chekRowCellHeader();
}
private void getData(System.DateTime startD,System.DateTime endD)
{
string testS = "";
System.Data.OleDb.OleDbConnection conn =
new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=db1.mdb;");
conn.Open();
System.Data.DataTable tdb = new DataTable();
System.Data.OleDb.OleDbDataAdapter tad = new System.Data.OleDb.OleDbDataAdapter("",conn);
tad.SelectCommand.CommandText = "SELECT [ddate],[mome] FROM[table1]" +
" WHERE ( [table1]![ddate] > CDate('" + startD.ToShortDateString() + " 7:30:00')" +
" And [table1]![ddate] < CDate('" + endD.ToShortDateString() + " 18:00:00')) ORDER BY [table1]![ddate]";
testS = tad.SelectCommand.CommandText;
tad.Fill(tdb);
int bb = 0;
int columnX = 0;
if (tdb.Rows.Count > 0)
{
while (bb < tdb.Rows.Count)
{
for (int x = 0; x < 9; x++)
{
testS = tdb.Rows[bb][0].ToString()+"--"+tdb.Rows[bb][1].ToString();
dataGridView1.Rows[x].Cells[columnX].Value = tdb.Rows[bb][1].ToString();
bb = bb + 1;
}
columnX = columnX + 1;
}
}
tdb = null;
tad = null;
conn = null;
}
private void getWeekSE(System.DateTime td, ref System.DateTime d1, ref System.DateTime d2)
{
switch (td.DayOfWeek.ToString())
{
case "Monday":
d1 = td;
d2 = td.AddDays(6);
break;
case "Tuesday":
d1 = td.AddDays(-1);
d2 = td.AddDays(5);
break;
case "Wednesday":
d1 = td.AddDays(-2);
d2 = td.AddDays(4);
break;
case "Thursday":
d1 = td.AddDays(-3);
d2 = td.AddDays(3);
break;
case "Friday":
d1 = td.AddDays(-4);
d2 = td.AddDays(2);
break;
case "Satuday":
d1 = td.AddDays(-5);
d2 = td.AddDays(1);
break;
default:
d1 = td.AddDays(-6);
d2 = td;
break;
}
}
private void button1_Click(object sender, EventArgs e)
{
System.DateTime tt1 = new DateTime();
System.DateTime tt2 = new DateTime();
getWeekSE(dateTimePicker1.Value, ref tt1,ref tt2);
getData(tt1, tt2);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("新增日期時間資料前,請先確認是否已有資料在裡面!");
System.Data.OleDb.OleDbConnection conn =
new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;");
conn.Open();
string temps = "";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("",conn);
System.DateTime dt = new DateTime(2007, 1, 3);
for(int i= 0;i<365;i++)
{
for (int g = 0; g < 9; g++)
{
temps = "INSERT INTO [table1] VALUES (\"" + dt.ToShortDateString() + " " +
dataGridView1.Rows[g].HeaderCell.Value.ToString() + ":00\",\" \")";
cmd.CommandText = temps;
cmd.ExecuteNonQuery();
}
cmd.CommandText = temps;
cmd.ExecuteNonQuery();
dt = dt.AddDays(1);
}
cmd = null;
conn.Close();
conn = null;
MessageBox.Show("新增完成");
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if ((e.RowIndex<9)>-1) && (e.ColumnIndex>-1))
{
Form_s.timeKey = dataGridView1.Columns[e.ColumnIndex].HeaderText + " " + dataGridView1.Rows[e.RowIndex].HeaderCell.Value.ToString() + ":00";
Form_s.Memo = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
Form_s f = new Form_s(this);
f.Show();
}
}
private void button3_Click(object sender, EventArgs e)
{
Form_d fd = new Form_d();
fd.Show();
}
}
}
這是主表單的程式碼