IT_Programming/C# 모바일

DataGrid를 이용한 출력, 추가, 수정, 삭제 (인덱서 사용)

JJun ™ 2006. 5. 23. 18:52

[ sqlDB.cs : DB 연결부분 클래스 파일]

 

using System;
using System.Data;
using System.Data.SqlClient;

using System.Configuration;


namespace realtimeApp
{
 
/// <summary>
 /// sqlDB에 대한 요약 설명입니다.
 /// </summary>


 public class sqlDB
 {
  
//public string constr= (string)ConfigurationSettings.AppSettings["ConnectionString"];
  
  public sqlDB()
  {
   
//
   // TODO: 여기에 생성자 논리를 추가합니다.
   //
  }

 

 SqlConnection conn;
 
  public SqlConnection Open()
  {
     string conn_state = "server=***.***.***.***;database=mobile;uid=***;pwd=******";
     conn = new SqlConnection(conn_state);
     conn.Open();
     return conn;  
   }
 
  public SqlDataReader dataReader(string sql)
  {
     SqlCommand cmd = new SqlCommand(sql, conn);
     return cmd.ExecuteReader();
  }

  

  public int dataWriter(string sql)
  {
     SqlCommand cmd = new SqlCommand(sql, conn);
     int k = cmd.ExecuteNonQuery();
     return k;
  }

  

  public DataSet dataAdapter(string sql)
  {
     SqlDataAdapter da = new SqlDataAdapter(sql,conn);
     DataSet ds = new DataSet();
     da.Fill(ds, "ds_tbl");
     return ds;
  }

  

  public void Close()
  {
     conn.Close();
  }
 }
}

======================================================================================

 

[ list.cs : 출력부분 CS파일 ]

 

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;

using System.Data.SqlClient;


namespace realtimeApp
{
 
/// <summary>
 /// Form1에 대한 요약 설명입니다.
 /// </summary>


 public class Form1 : System.Windows.Forms.Form
 {
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.DataGrid dataGrid1;
  private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn1;
  private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn2;
  private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn3;
  private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn4;

  

  sqlDB setdb = new sqlDB();

  

  public Form1()
  {
   
//
   // Windows Form 디자이너 지원에 필요합니다.
   //
   InitializeComponent();

   //
   // TODO: InitializeComponent를 호출한 다음 생성자 코드를 추가합니다.
   //
  }
  
/// <summary>
  /// 사용 중인 모든 리소스를 정리합니다.
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   base.Dispose( disposing );
  }
  

  #region Windows Form 디자이너에서 생성한 코드
  
/// <summary>
  /// 디자이너 지원에 필요한 메서드입니다.
  /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
  /// </summary>
  private void InitializeComponent()
  {
   this.dataGrid1 = new System.Windows.Forms.DataGrid();
   this.dataGridTextBoxColumn1 = new System.Windows.Forms.DataGridTextBoxColumn();
   this.dataGridTextBoxColumn2 = new System.Windows.Forms.DataGridTextBoxColumn();
   this.dataGridTextBoxColumn3 = new System.Windows.Forms.DataGridTextBoxColumn();
   this.dataGridTextBoxColumn4 = new System.Windows.Forms.DataGridTextBoxColumn();
   this.button1 = new System.Windows.Forms.Button();
   
//
   // dataGrid1
   //

   this.dataGrid1.Location = new System.Drawing.Point(8, 8);
   this.dataGrid1.Size = new System.Drawing.Size(288, 240);
   this.dataGrid1.Text = "dataGrid1";
   this.dataGrid1.Click += new System.EventHandler(this.dataGrid1_Click);
   
//
   // dataGridTextBoxColumn1
   //
   this.dataGridTextBoxColumn1.NullText = "(null)";
   
//
   // dataGridTextBoxColumn2
   //
   this.dataGridTextBoxColumn2.NullText = "(null)";
  
 //
   // dataGridTextBoxColumn3
   //
   this.dataGridTextBoxColumn3.NullText = "(null)";
   
//
   // dataGridTextBoxColumn4
   //
   this.dataGridTextBoxColumn4.NullText = "(null)";
   
//
   // button1
   //
   this.button1.Location = new System.Drawing.Point(8, 256);
   this.button1.Text = "추가";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   
//
   // Form1
   //
   this.ClientSize = new System.Drawing.Size(306, 343);
   this.Controls.Add(this.button1);
   this.Controls.Add(this.dataGrid1);
   this.Text = "Form1";
   this.Load += new System.EventHandler(this.Form1_Load);

  }
  #endregion

  /// <summary>
  /// 해당 응용 프로그램의 주 진입점입니다.
  /// </summary>

 

  static void Main()
  {
     Application.Run(new Form1());
  }

  

  private void Form1_Load(object sender, System.EventArgs e)
  {
     grid_Bind();
  }

  

  private void dataGrid1_Click(object sender, System.EventArgs e)
  {
     modilist ml = new modilist();

     ml[0] = this.dataGrid1[this.dataGrid1.CurrentCell.RowNumber,0].ToString();
     ml[1] = this.dataGrid1[this.dataGrid1.CurrentCell.RowNumber,1].ToString();
     ml[2] = this.dataGrid1[this.dataGrid1.CurrentCell.RowNumber,2].ToString();
     ml[3] = this.dataGrid1[this.dataGrid1.CurrentCell.RowNumber,3].ToString();

     ml.Show();
     this.Hide();
  }

  

  private void button1_Click(object sender, System.EventArgs e)
  {
     newlist nl = new newlist();
     nl.Show();
  }

  
  private void grid_Bind()
  {
     setdb.Open();   
   
     string sql = "select * from member";
     DataSet ds = setdb.dataAdapter(sql);
     DataTable dt = new DataTable();
     DataRow dr;

   

     dt.Columns.Add(new DataColumn("d_idx",typeof(int)));
     dt.Columns.Add(new DataColumn("d_name",typeof(string)));
     dt.Columns.Add(new DataColumn("d_addr",typeof(string)));
     dt.Columns.Add(new DataColumn("d_pub",typeof(string)));

   

     for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
     {
        dr = dt.NewRow();

        dr["d_idx"] = ds.Tables[0].Rows[i]["idx"].ToString();
        dr["d_name"] = ds.Tables[0].Rows[i]["name"].ToString();
        dr["d_addr"] = ds.Tables[0].Rows[i]["addr"].ToString();
        dr["d_pub"]  = ds.Tables[0].Rows[i]["pud"].ToString();

        dt.Rows.Add(dr);
     }
   
   setdb.Close();

   DataView dv = new DataView(dt);
   
   this.dataGrid1.DataSource = dv; 
// ds.Tables[0];
  }

 }
}

======================================================================================

 

[ newlist.cs : 추가부분 CS파일 ]

 

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;

 

namespace realtimeApp
{
 /// <summary>
 /// Form1에 대한 요약 설명입니다.
 /// </summary>


 public class newlist : System.Windows.Forms.Form
 {
  private System.Windows.Forms.TextBox textBox1;
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.TextBox textBox2;
  private System.Windows.Forms.TextBox textBox3;

 

  sqlDB setdb = new sqlDB();
  Form1 f1 = new Form1();
  
  public newlist()
  {
   
//
   // Windows Form 디자이너 지원에 필요합니다.
   //
   InitializeComponent();

   //
   // TODO: InitializeComponent를 호출한 다음 생성자 코드를 추가합니다.
   //
  }
  
/// <summary>
  /// 사용 중인 모든 리소스를 정리합니다.
  /// </summary>


  protected override void Dispose( bool disposing )
  {
     base.Dispose( disposing );
  }
  

  #region Windows Form 디자이너에서 생성한 코드
  
/// <summary>
  /// 디자이너 지원에 필요한 메서드입니다.
  /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
  /// </summary>

 

 


  private void InitializeComponent()
  {
   this.textBox1 = new System.Windows.Forms.TextBox();
   this.button1 = new System.Windows.Forms.Button();
   this.textBox2 = new System.Windows.Forms.TextBox();
   this.textBox3 = new System.Windows.Forms.TextBox();
   
//
   // textBox1
   //
   this.textBox1.Text = "";
  
 //
   // button1
   //
   this.button1.Location = new System.Drawing.Point(0, 72);
   this.button1.Text = "저장";
   this.button1.Click += new System.EventHandler(this.button1_Click);
  
 //
   // textBox2
   //
   this.textBox2.Location = new System.Drawing.Point(0, 24);
   this.textBox2.Text = "";
   
//
   // textBox3
   //
   this.textBox3.Location = new System.Drawing.Point(0, 48);
   this.textBox3.Text = "";
   
//
   // newlist
   //
   this.Controls.Add(this.textBox3);
   this.Controls.Add(this.textBox2);
   this.Controls.Add(this.button1);
   this.Controls.Add(this.textBox1);
   this.Text = "Form1";

  }
  #endregion

  /// <summary>
  /// 해당 응용 프로그램의 주 진입점입니다.
  /// </summary>
  ///

 

  private void button1_Click(object sender, System.EventArgs e)
  {
   string v_name = this.textBox1.Text.ToString();
   string v_addr = this.textBox2.Text.ToString();
   string v_pub  = this.textBox3.Text.ToString();

 

   setdb.Open();

   string sql = "insert into member values ('"+v_name+"','"+v_addr+"','"+v_pub+"')";
   
   int result = setdb.dataWriter(sql);

 

   if(result == 1)
   {
      MessageBox.Show("입력이 완료되었습니다.");
      f1.Show();
      this.Close();
   }
   else
   {
      MessageBox.Show("입력오류... 다시 작성하시오");
   }
   setdb.Close();
  }
 }
}

======================================================================================

 

[ modilist.cs : 수정, 삭제부분 CS파일 ]

 

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;

 

namespace realtimeApp
{
 
/// <summary>
 /// Form1에 대한 요약 설명입니다.
 /// </summary>


 public class modilist : System.Windows.Forms.Form
 {
  private System.Windows.Forms.TextBox textBox1;
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.TextBox textBox2;
  private System.Windows.Forms.TextBox textBox4;
  private System.Windows.Forms.TextBox textBox3;
  private System.Windows.Forms.Button button2;

 

  public string[] s_value = new string[4];
  Form1 f1 = new Form1();
  sqlDB setdb = new sqlDB();

 

  public modilist()
  {
 
  //
   // Windows Form 디자이너 지원에 필요합니다.
   //
   InitializeComponent();

   //
   // TODO: InitializeComponent를 호출한 다음 생성자 코드를 추가합니다.
   //
  }
  
/// <summary>
  /// 사용 중인 모든 리소스를 정리합니다.
  /// </summary>


  protected override void Dispose( bool disposing )
  {
     base.Dispose( disposing );
  }
  

  #region Windows Form 디자이너에서 생성한 코드
  
/// <summary>
  /// 디자이너 지원에 필요한 메서드입니다.
  /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
  /// </summary>


  private void InitializeComponent()
  {
   this.textBox1 = new System.Windows.Forms.TextBox();
   this.button1 = new System.Windows.Forms.Button();
   this.textBox2 = new System.Windows.Forms.TextBox();
   this.textBox3 = new System.Windows.Forms.TextBox();
   this.textBox4 = new System.Windows.Forms.TextBox();
   this.button2 = new System.Windows.Forms.Button();
   //
   // textBox1
   //
   this.textBox1.ReadOnly = true;
   this.textBox1.Text = "";
   
//
   // button1
   //
   this.button1.Location = new System.Drawing.Point(0, 96);
   this.button1.Text = "수정";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   
//
   // textBox2
   //
   this.textBox2.Location = new System.Drawing.Point(0, 24);
   this.textBox2.Text = "";
   
//
   // textBox3
   //
   this.textBox3.Location = new System.Drawing.Point(0, 48);
   this.textBox3.Text = "";
   
//
   // textBox4
   //
   this.textBox4.Location = new System.Drawing.Point(0, 72);
   this.textBox4.Text = "";
   
//
   // button2
   //
   this.button2.Location = new System.Drawing.Point(0, 120);
   this.button2.Text = "삭제";
   this.button2.Click += new System.EventHandler(this.button2_Click);
   
//
   // modilist
   //
   this.ClientSize = new System.Drawing.Size(240, 223);
   this.Controls.Add(this.button2);
   this.Controls.Add(this.textBox4);
   this.Controls.Add(this.textBox3);
   this.Controls.Add(this.textBox2);
   this.Controls.Add(this.button1);
   this.Controls.Add(this.textBox1);
   this.Text = "Form1";
   this.Load += new System.EventHandler(this.modilist_Load);

  }
  #endregion

 

  private void modilist_Load(object sender, System.EventArgs e)
  {


  }

 

  private void button1_Click(object sender, System.EventArgs e)
  {
     int v_idx = int.Parse(this.textBox1.Text.ToString());
     string v_name = this.textBox2.Text.ToString();
     string v_addr = this.textBox3.Text.ToString();
     string v_pud = this.textBox4.Text.ToString();
   
     setdb.Open();

    

     string sql = "update member set name='"+v_name+"',addr = '"+v_addr+"',

                       pud = '"+v_pud+"' where idx ="+v_idx;

 

     int result = setdb.dataWriter(sql);
   
     if(result == 1)
     {
        MessageBox.Show("수정이 완료되었습니다.");
        f1.Show();
        this.Close();
     }
     else
     {
       MessageBox.Show("수정오류... 다시 작성하시오");
     }
    setdb.Close();
  }

 

  private void button2_Click(object sender, System.EventArgs e)
  {
     int v_idx = int.Parse(this.textBox1.Text.ToString());
   
     setdb.Open();

     string sql = "delete from member where idx ="+v_idx;

     int result = setdb.dataWriter(sql);
   

     if(result == 1)
     {
        MessageBox.Show("삭제가 완료되었습니다.");
        f1.Show();
        this.Close();
     }
     else
     {
        MessageBox.Show("삭오류... 다시 작성하시오");
     }
     setdb.Close();
 }

 

  /// <summary>
  /// 해당 응용 프로그램의 주 진입점입니다.
  /// </summary>
  ///

 

//  인덱서 방식
  public string this[int cnt]
  {
   set
   {
      s_value[cnt] = value;

      this.textBox1.Text = s_value[0];
      this.textBox2.Text = s_value[1];
      this.textBox3.Text = s_value[2];
      this.textBox4.Text = s_value[3];
   }
//   get
//   {
//    return s_value[cnt];
//   }

  }
 }
}

======================================================================================