codisinmyvines

npgsql

Nov 8th, 2021 (edited)
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.48 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Npgsql;
  11. namespace ConnectionPostgres2._0
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         private string connstring = String.Format("Server={0};Port={1};" +
  16.             "User Id={2};Password={3};Database={4};",
  17.             "localhost", 5432, "postgres",
  18.             "Kuzmaiva20025", "testcsharp");
  19.         private NpgsqlConnection conn;
  20.         private string sql;
  21.         private NpgsqlCommand cmd;
  22.         private DataTable dt;
  23.         private int rowIndex = -1;
  24.         public Form1()
  25.         {
  26.             InitializeComponent();
  27.         }
  28.        
  29.         private void Form1_Load(object sender, EventArgs e)
  30.         {
  31.             conn = new NpgsqlConnection(connstring);
  32.             Select();
  33.         }
  34.  
  35.         private void label1_Click(object sender, EventArgs e)
  36.         {
  37.  
  38.         }
  39.  
  40.         private void label3_Click(object sender, EventArgs e)
  41.         {
  42.  
  43.         }
  44.  
  45.         private void button3_Click(object sender, EventArgs e)
  46.         {
  47.             if (rowIndex < 0)
  48.             {
  49.                 MessageBox.Show("Please choose student to delete");
  50.                 return;
  51.             }
  52.             try
  53.             {
  54.                 conn.Open();
  55.                 sql = @"SELECT * FROM st_delete(:_id)";
  56.                 cmd = new NpgsqlCommand(sql, conn);
  57.                 cmd.Parameters.AddWithValue("_id", int.Parse(dgvData.Rows[rowIndex].Cells["id"].Value.ToString()));
  58.                 if((int)cmd.ExecuteScalar() == 1)
  59.                 {
  60.                     MessageBox.Show("Delete student successfully");
  61.                     rowIndex = -1;
  62.                     Select();
  63.                 }
  64.                
  65.  
  66.                 conn.Close();
  67.             }
  68.             catch(Exception ex)
  69.             {
  70.                 conn.Close();
  71.                 MessageBox.Show("Deleted failed. Errors: "+ ex.Message);
  72.             }
  73.         }
  74.  
  75.         private void button1_Click(object sender, EventArgs e)
  76.         {
  77.             rowIndex = -1;
  78.             txtFirstname.Enabled = txtMidname.Enabled = txtLastname.Enabled = true;
  79.             txtFirstname.Text = txtMidname.Text = txtLastname.Text = null;
  80.             txtFirstname.Select();
  81.         }
  82.         private void Select()
  83.         {
  84.             try
  85.             {
  86.                 conn.Open();
  87.                 sql = @"SELECT * FROM st_select()";
  88.                 cmd = new NpgsqlCommand(sql, conn);
  89.                 dt = new DataTable();
  90.                 dt.Load(cmd.ExecuteReader());
  91.                 conn.Close();
  92.                 dgvData.DataSource = null; //reset datagridview
  93.                 dgvData.DataSource = dt;
  94.             }
  95.             catch(Exception ex)
  96.             {
  97.                 conn.Close();
  98.                 MessageBox.Show("Error: " + ex.Message);
  99.             }
  100.         }
  101.  
  102.         private void dgvData_CellContentClick(object sender, DataGridViewCellEventArgs e)
  103.         {
  104.             if(e.RowIndex>=0)
  105.             {
  106.                 rowIndex = e.RowIndex;
  107.                 txtFirstname.Text = dgvData.Rows[e.RowIndex].Cells["firstname"].Value.ToString();
  108.                 txtMidname.Text = dgvData.Rows[e.RowIndex].Cells["midname"].Value.ToString();
  109.                 txtLastname.Text = dgvData.Rows[e.RowIndex].Cells["lastname"].Value.ToString();
  110.             }
  111.         }
  112.  
  113.         private void btnUpdate_Click(object sender, EventArgs e)
  114.         {
  115.             if(rowIndex<0)
  116.             {
  117.                 MessageBox.Show("Please choose student to update");
  118.                 return;
  119.             }
  120.             txtFirstname.Enabled = txtMidname.Enabled = txtLastname.Enabled = true;
  121.         }
  122.  
  123.         private void btnSave_Click(object sender, EventArgs e)
  124.         {
  125.             int result = 0;
  126.             if(rowIndex<0) //insert
  127.             {
  128.                 try
  129.                 {
  130.                     conn.Open();
  131.                     sql = @"SELECT * FROM st_insert(:_firstname, :_midname, :_lastname)";
  132.                     cmd = new NpgsqlCommand(sql, conn);
  133.                     cmd.Parameters.AddWithValue("_firstname", txtFirstname.Text);
  134.                     cmd.Parameters.AddWithValue("_midname", txtMidname.Text);
  135.                     cmd.Parameters.AddWithValue("_lastname", txtLastname.Text);
  136.                     result = (int)cmd.ExecuteScalar();
  137.                     conn.Close();
  138.                     if (result == 1)
  139.                     {
  140.                         MessageBox.Show("Inserted new student successfully");
  141.                         Select();
  142.                     }
  143.                     else
  144.                     {
  145.                         MessageBox.Show("Inserted failed");
  146.                     }
  147.                 }
  148.                 catch(Exception ex)
  149.                 {
  150.                     conn.Close();
  151.                     MessageBox.Show("Inserted failed. Error: " + ex.Message);
  152.                 }
  153.             }
  154.             else //update
  155.             {
  156.                 try
  157.                 {
  158.                     conn.Open();
  159.                     sql = @"SELECT * FROM st_update(:_id, :_firstname, :_midname, :_lastname)";
  160.                     cmd = new NpgsqlCommand(sql, conn);
  161.                     cmd.Parameters.AddWithValue("_id", int.Parse(dgvData.Rows[rowIndex].Cells["id"].Value.ToString()));
  162.                     cmd.Parameters.AddWithValue("_firstname", txtFirstname.Text);
  163.                     cmd.Parameters.AddWithValue("_midname", txtMidname.Text);
  164.                     cmd.Parameters.AddWithValue("_lastname", txtLastname.Text);
  165.                     result = (int)cmd.ExecuteScalar();
  166.                     conn.Close();
  167.                     if (result == 1)
  168.                     {
  169.                         MessageBox.Show("Updated successfully");
  170.                         Select();
  171.                     }
  172.                     else
  173.                     {
  174.                         MessageBox.Show("Updated failed");
  175.  
  176.                     }    
  177.                 }
  178.                 catch (Exception ex)
  179.                 {
  180.                     conn.Close();
  181.                     MessageBox.Show("Updated failed. Error: " + ex.Message);
  182.                 }
  183.             }
  184.             result = 0;
  185.             txtFirstname.Text = txtMidname.Text = txtLastname.Text = null;
  186.             txtFirstname.Enabled = txtMidname.Enabled = txtLastname.Enabled = false;
  187.         }
  188.     }
  189. }
  190.  
Add Comment
Please, Sign In to add comment