Funktions erweiterung.
Funkionalität steht bisher noch nicht
This commit is contained in:
parent
ad4e3ed6dd
commit
3948a79e9c
@ -9,7 +9,9 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="controll\" />
|
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
160
TimeTable/controll/SqliteCommands.cs
Normal file
160
TimeTable/controll/SqliteCommands.cs
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
using Microsoft.Data.Sqlite;
|
||||||
|
using System.Globalization;
|
||||||
|
using TimeTable.model;
|
||||||
|
|
||||||
|
namespace TimeTable.controll {
|
||||||
|
internal static class SqliteCommands {
|
||||||
|
|
||||||
|
public static string select = "select uid, start, end, text, time from timetable";
|
||||||
|
private static CultureInfo ci = System.Globalization.CultureInfo.GetCultureInfo("de-de");
|
||||||
|
private static string insertPrefix = "insert into timetable (";
|
||||||
|
private static string insertIntermediate = ") values(";
|
||||||
|
private static string insertPostfix = ");";
|
||||||
|
|
||||||
|
private static string updatePrefix = "update timetable set ";
|
||||||
|
private static string updateIntermediate = " where uid = ";
|
||||||
|
private static string updatePostfix = ";";
|
||||||
|
|
||||||
|
public static UidCommand InsertCmd(DateTime start) {
|
||||||
|
string uid = Guid.NewGuid().ToString();
|
||||||
|
return BuildInsertCommand(uid, "uid, start", uid + "," + start.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static UidCommand BuildInsertCommand(string uid, string fields, string values) {
|
||||||
|
string command = insertPrefix + fields + insertIntermediate + values + insertPostfix;
|
||||||
|
UidCommand uidCommand = new UidCommand();
|
||||||
|
uidCommand.uid = uid;
|
||||||
|
uidCommand.command = command;
|
||||||
|
return uidCommand;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static string BuildUpdateCmd(string uid, string fieldValues) {
|
||||||
|
return updatePrefix + fieldValues + updateIntermediate + uid + updatePostfix;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static UidCommand InsertCmd(DateTime start, string text) {
|
||||||
|
string uid = Guid.NewGuid().ToString();
|
||||||
|
return BuildInsertCommand(uid, "uid, start", uid + "," + start.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string UpdateCmdCreator(string uid, string[] keys, string[] values) {
|
||||||
|
if (keys.Length != values.Length) {
|
||||||
|
throw new ArgumentException();
|
||||||
|
}
|
||||||
|
|
||||||
|
string fieldValues = "";
|
||||||
|
for (int i = 0; i < keys.Length; i++) {
|
||||||
|
fieldValues += keys[i] + " = " + values[i] + ",";
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldValues = fieldValues.TrimEnd(',');
|
||||||
|
|
||||||
|
|
||||||
|
return BuildUpdateCmd(uid, fieldValues);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string UpdateCmd(string uid, DateTime start, DateTime end, string text) {
|
||||||
|
string[] keys = new string[3];
|
||||||
|
keys[0] = "uid";
|
||||||
|
keys[1] = "start";
|
||||||
|
keys[2] = "end";
|
||||||
|
keys[3] = "text";
|
||||||
|
string[] values = new string[3];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = start.ToString();
|
||||||
|
values[2] = end.ToString();
|
||||||
|
values[3] = text;
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string UpdateStartCmd(string uid, DateTime start) {
|
||||||
|
string[] keys = new string[2];
|
||||||
|
keys[0] = "uid";
|
||||||
|
keys[1] = "start";
|
||||||
|
string[] values = new string[2];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = start.ToString();
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
public static string UpdateEndCmd(string uid, DateTime end) {
|
||||||
|
string[] keys = new string[2];
|
||||||
|
keys[0] = uid;
|
||||||
|
keys[1] = "end";
|
||||||
|
string[] values = new string[2];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = end.ToString();
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string UpdateTextCmd(string uid, string text) {
|
||||||
|
string[] keys = new string[2];
|
||||||
|
keys[0] = uid;
|
||||||
|
keys[1] = "text";
|
||||||
|
string[] values = new string[2];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = text;
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string UpdateStartTextCmd(string uid, DateTime start, string text) {
|
||||||
|
string[] keys = new string[3];
|
||||||
|
keys[0] = "uid";
|
||||||
|
keys[1] = "start";
|
||||||
|
keys[2] = "text";
|
||||||
|
string[] values = new string[3];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = start.ToString();
|
||||||
|
values[2] = text;
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
public static string UpdateEndTextCmd(string uid, DateTime end, string text) {
|
||||||
|
string[] keys = new string[3];
|
||||||
|
keys[0] = "uid";
|
||||||
|
keys[1] = "start";
|
||||||
|
keys[2] = "text";
|
||||||
|
string[] values = new string[3];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = end.ToString();
|
||||||
|
values[2] = text;
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string UpdateTimeCmd(string uid, TimeSpan timespan) {
|
||||||
|
string[] keys = new string[2];
|
||||||
|
keys[0] = uid;
|
||||||
|
keys[1] = "time";
|
||||||
|
string[] values = new string[2];
|
||||||
|
values[0] = uid;
|
||||||
|
values[1] = timespan.ToString();
|
||||||
|
return UpdateCmdCreator(uid, keys, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void CreateTableIfNotExists(string sqlConnection) {
|
||||||
|
SqliteConnection con = new SqliteConnection(sqlConnection);
|
||||||
|
con.Open();
|
||||||
|
SqliteCommand sqliteCmd = con.CreateCommand();
|
||||||
|
sqliteCmd.CommandText = @"SELECT name FROM sqlite_master WHERE type='table' AND name='timetable';";
|
||||||
|
|
||||||
|
var name = sqliteCmd.ExecuteScalar();
|
||||||
|
if (name != null && name.ToString() == "timetable") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var cols = string.Join(" VARCHAR,", "uid, start, end, text, time");
|
||||||
|
cols = cols + " Varchar";
|
||||||
|
sqliteCmd.CommandText = "CREATE TABLE timetable (" + cols + ")";
|
||||||
|
con.Open();
|
||||||
|
sqliteCmd.ExecuteNonQuery();
|
||||||
|
con.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,8 @@
|
|||||||
namespace TimeTable.model {
|
namespace TimeTable.model {
|
||||||
internal class Basic {
|
internal class Basic {
|
||||||
|
|
||||||
|
|
||||||
|
string uid { get; set; }
|
||||||
DateTime time { get; set; }
|
DateTime time { get; set; }
|
||||||
string name { get; set; }
|
string name { get; set; }
|
||||||
}
|
}
|
||||||
|
6
TimeTable/model/UidCommand.cs
Normal file
6
TimeTable/model/UidCommand.cs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
namespace TimeTable.model {
|
||||||
|
internal class UidCommand {
|
||||||
|
public string uid { get; set; }
|
||||||
|
public string command { get; set; }
|
||||||
|
}
|
||||||
|
}
|
59
TimeTable/view/Main.Designer.cs
generated
59
TimeTable/view/Main.Designer.cs
generated
@ -1,4 +1,10 @@
|
|||||||
namespace TimeTable
|
using Microsoft.Data.SqlClient;
|
||||||
|
using Microsoft.Data.Sqlite;
|
||||||
|
using System.Drawing;
|
||||||
|
using TimeTable.controll;
|
||||||
|
using TimeTable.model;
|
||||||
|
|
||||||
|
namespace TimeTable
|
||||||
{
|
{
|
||||||
partial class Main
|
partial class Main
|
||||||
{
|
{
|
||||||
@ -33,11 +39,17 @@
|
|||||||
btnStopResume = new Button();
|
btnStopResume = new Button();
|
||||||
btnStart = new Button();
|
btnStart = new Button();
|
||||||
tableView = new Panel();
|
tableView = new Panel();
|
||||||
dataGridView1 = new DataGridView();
|
taskTimeGridView = new DataGridView();
|
||||||
btnPanel.SuspendLayout();
|
btnPanel.SuspendLayout();
|
||||||
tableView.SuspendLayout();
|
tableView.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit();
|
((System.ComponentModel.ISupportInitialize)taskTimeGridView).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
|
|
||||||
|
|
||||||
|
sqlConnectionString = "Data Source=" + Directory.GetCurrentDirectory() + "\\sqllite.db";
|
||||||
|
SqliteCommands.CreateTableIfNotExists(sqlConnectionString);
|
||||||
|
dataAdapter = new SqlDataAdapter("SELECT * from timetable", sqlConnectionString);
|
||||||
|
|
||||||
//
|
//
|
||||||
// btnPanel
|
// btnPanel
|
||||||
//
|
//
|
||||||
@ -96,22 +108,23 @@
|
|||||||
// tableView
|
// tableView
|
||||||
//
|
//
|
||||||
tableView.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
tableView.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
tableView.Controls.Add(dataGridView1);
|
tableView.Controls.Add(taskTimeGridView);
|
||||||
tableView.Dock = DockStyle.Right;
|
tableView.Dock = DockStyle.Right;
|
||||||
tableView.Location = new Point(239, 0);
|
tableView.Location = new Point(239, 0);
|
||||||
tableView.Name = "tableView";
|
tableView.Name = "tableView";
|
||||||
tableView.Size = new Size(477, 171);
|
tableView.Size = new Size(477, 171);
|
||||||
tableView.TabIndex = 1;
|
tableView.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// dataGridView1
|
// taskTimeGridView
|
||||||
//
|
//
|
||||||
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
taskTimeGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
dataGridView1.Dock = DockStyle.Fill;
|
taskTimeGridView.Dock = DockStyle.Fill;
|
||||||
dataGridView1.Location = new Point(0, 0);
|
taskTimeGridView.Location = new Point(0, 0);
|
||||||
dataGridView1.Name = "dataGridView1";
|
taskTimeGridView.Name = "taskTimeGridView";
|
||||||
dataGridView1.RowHeadersWidth = 51;
|
taskTimeGridView.RowHeadersWidth = 51;
|
||||||
dataGridView1.Size = new Size(477, 171);
|
taskTimeGridView.Size = new Size(477, 171);
|
||||||
dataGridView1.TabIndex = 0;
|
taskTimeGridView.TabIndex = 0;
|
||||||
|
taskTimeGridView.DataSource = dataAdapter;
|
||||||
//
|
//
|
||||||
// Main
|
// Main
|
||||||
//
|
//
|
||||||
@ -124,14 +137,24 @@
|
|||||||
Text = "TimeTable";
|
Text = "TimeTable";
|
||||||
btnPanel.ResumeLayout(false);
|
btnPanel.ResumeLayout(false);
|
||||||
tableView.ResumeLayout(false);
|
tableView.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit();
|
((System.ComponentModel.ISupportInitialize)taskTimeGridView).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void executeSql(string command) {
|
||||||
|
SqliteConnection con = new SqliteConnection(sqlConnectionString);
|
||||||
|
SqliteCommand sqliteCmd = con.CreateCommand();
|
||||||
|
sqliteCmd.CommandText = command;
|
||||||
|
con.Open();
|
||||||
|
sqliteCmd.ExecuteNonQuery();
|
||||||
|
con.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void btnStartClick(object sender, EventArgs e) {
|
private void btnStartClick(object sender, EventArgs e) {
|
||||||
|
UidCommand uidCmd = SqliteCommands.InsertCmd(DateTime.Now);
|
||||||
|
uid = uidCmd.uid;
|
||||||
|
executeSql(uidCmd.command);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnTaskStartClick(object sender, EventArgs e) {
|
private void btnTaskStartClick(object sender, EventArgs e) {
|
||||||
@ -139,6 +162,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void btnStopResumeClick(object sender, EventArgs e) {
|
private void btnStopResumeClick(object sender, EventArgs e) {
|
||||||
|
String cmd = SqliteCommands.UpdateEndCmd(uid, DateTime.Now);
|
||||||
|
executeSql(cmd);
|
||||||
|
taskTimeGridView.DataSource = dataAdapter;
|
||||||
|
|
||||||
}
|
}
|
||||||
private void btnTaskStopClick(object sender, EventArgs e) {
|
private void btnTaskStopClick(object sender, EventArgs e) {
|
||||||
@ -155,6 +181,9 @@
|
|||||||
private Button btnStopResume;
|
private Button btnStopResume;
|
||||||
private Button btnStart;
|
private Button btnStart;
|
||||||
private Panel tableView;
|
private Panel tableView;
|
||||||
private DataGridView dataGridView1;
|
private DataGridView taskTimeGridView;
|
||||||
|
private string uid;
|
||||||
|
string sqlConnectionString;
|
||||||
|
private SqlDataAdapter dataAdapter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user