우선 실행했을때의 디자인 입니다.
package 형식입니다.
●TodoForm
using mdiproject.user;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace mdiproject.todo
{
public partial class TodoForm : Form
{
private static TodoForm instance = null;
private TodoDBMan todoDBMan = new TodoDBMan();
public static TodoForm getInstance()
{
if (instance == null || instance.IsDisposed)
{
instance = new TodoForm();
return instance;
}
else
return instance;
}
public TodoForm()
{
InitializeComponent();
useridx_combobox.DataSource = new List<string>()
{
"1","2","3","4","5"
};
useridx_combobox.SelectedText = "1";
Label title_tb = new Label();
title_tb.Text = "title";
title_tb.AutoSize = true;
title_tb.Font = new Font("휴먼엑스포", 20.25F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(129)));
Panel resevPanel = new Panel();
resevPanel.BackColor = Color.White;
resevPanel.Size = new Size(200, 100);
resevPanel.Location = new Point(20, 70);
resevPanel.Controls.Add(title_tb);
panel1.Controls.Add(resevPanel);
}
private void button1_Click(object sender, EventArgs e)
{
bool result = todoDBMan.insert(new Todo()
{
users_idx = int.Parse(useridx_combobox.Text),
title = title_textbox.Text,
content = content_tb.Text,
finishdate = finish_datepicker.Value
});
if (result)
{
MessageBox.Show("입력하였습니다.");
title_textbox.Text = "";
content_tb.Text = "";
}
}
}
}
combobox에 12345 를 넣어주고 선택하게 한다.
버튼1을 클릭했을 때 todoDBman에 insert를 불러온다.
users_idx는 int형으로 텍스트값
title을 titlebox에 들어간 텍스트값
content는 contentbox에 들어간 텍스트값
finishdate는 finish_datepicker의 선택한 값
를 대입한다.
그리고 맞게 들어가면 메세지박스로 입력하였습니다를 출력하고
titlebox와 contentbox를 빈공백으로 만들어준다.
●TodoDBman Form
using mdiproject.database;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace mdiproject.todo
{
internal class TodoDBMan
{
public TodoDBMan() { }
public bool insert(Todo todo)
{
try
{
OracleConnection conn = DBINFO.openConnect();
string sql = "insert into todo" +
"(IDX, USERS_IDX, TITLE, CONTENT, FINISHDATE) values (todoidx.nextval, :usersidx, :title, :content, :finishdate)";
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.Parameters.Add(":usersidx", todo.users_idx);
cmd.Parameters.Add(":title", todo.title);
cmd.Parameters.Add(":content", todo.content);
cmd.Parameters.Add(":finishdate", todo.finishdate);
cmd.ExecuteNonQuery();
DBINFO.closeConnect();
return true;
}catch (Exception e)
{
Console.WriteLine(e.StackTrace);
Console.WriteLine(e.Message);
return false;
}
}
public void update(Todo todo)
{
OracleConnection conn = DBINFO.openConnect();
DBINFO.closeConnect();
}
public void delete(Todo todo)
{
OracleConnection conn = DBINFO.openConnect();
DBINFO.closeConnect();
}
public DataTable select()
{
try
{
DBINFO.openConnect();
string sql = "select * from todo";
OracleDataAdapter adapter = new OracleDataAdapter();
DataSet ds = new DataSet();
OracleCommand oracleCommand = new OracleCommand(sql, DBINFO.conn);
adapter.SelectCommand = oracleCommand;
adapter.Fill(ds);
DBINFO.closeConnect();
return ds.Tables[0];
}
catch (Exception e)
{
MessageBox.Show(e.StackTrace);
MessageBox.Show(e.Message);
return null;
}
}
}
}
쿼리문으로 insert를 해주고 텍스트에 들어간 값이 데이터에 들어갈 수 있도록 해준다.
●Todo class
namespace mdiproject.todo
{
public class Todo
{
public int idx { get; set; }
public int users_idx { get; set; }
public string title { get; set; }
public string content { get; set; }
public DateTime finishdate { get; set; }
}
}
데이터베이스에 들어간 목록을 get 과 set으로 넣어준다.
'C#' 카테고리의 다른 글
C# 할일 관리 프로그램 할일관리(5)(사용자관리 idx 연결) (1) | 2024.03.06 |
---|---|
C# 할일 관리 프로그램(4) 할일관리(select) (0) | 2024.03.05 |
C# 할일 관리 프로그램(2) 사용자관리(insert/select) (0) | 2024.02.28 |
c# 할일 관리 프로그램(1) (0) | 2024.02.27 |
C# crud(create, read(select), update, delete) 2 (0) | 2024.02.26 |