C# domanda base sulle classi

Stato
Discussione chiusa ad ulteriori risposte.

faustf

Utente Bronze
9 Febbraio 2016
2
2
0
29
Ultima modifica da un moderatore:
Buona sera a tutti ho una domanda proprio basilare , premetto che sto leggendo un libro di c# ( ma sono duro
biggrin.gif
)
ho creato un form con dei text box ed un bottone l'idea è: inserisco dei dati clicco su connetti si connette ad postgres db , e poi il tasto diventa un disconnetti ,lo ripremo e lui si sconnette , vorrei inserire la parte che connette e sconnette , il db in una classe , e passare i dati della textbox alla classe , (questa parte l ho fata ) ma non capisco come costruire la parte che dovrà connettersi al database , per caso qualche anima pia potrebbe darmi delle dritte ?? grazie ancora a tutti
Di seguito la classe e il form1

Classe
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.Common;
using System.Data.Odbc;


namespace odoo_connector
{
    class _Connector_DB
    {

        string Indirizzo, porta, database, user, password;

        public string setIP
        {
            set { Indirizzo = value; }
        }
        public string setPORT
        {
            set { porta = value; }
        }
        public string setDB
        {
            set { database = value; }
        }
        public string setUSER
        {
            set { user = value; }
        }
        public string setPASS
        {
            set { password = value; }
        }
    }
}

Form1
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

//using System.Data;
//using System.Data.Common;
//using System.Data.Odbc;

namespace odoo_connector
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public string ctrlbut = "1";   //  controllo  x il bottone connetti

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void tabPage2_Click(object sender, EventArgs e)
        {
            pictureBox1.ImageLocation = (@"C:\Users\utente\Documents\Visual Studio 2015\Projects\odoo_connector\icon\immagini\DaftOn.jpg");

        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void label5_Click(object sender, EventArgs e)
        {

        }

        private void pictureBox4_Click(object sender, EventArgs e)
        {

        }

        private void label15_Click(object sender, EventArgs e)
        {

        }

        private void label14_Click(object sender, EventArgs e)
        {

        }

        private void textBox7_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox8_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            if (ctrlbut == "1")
            {


                _Connector_DB connessione = new _Connector_DB();
                connessione.setIP = (textBox1.Text);
                connessione.setDB = (textBox3.Text);
                connessione.setPORT = (textBox2.Text);
                connessione.setUSER = (textBox8.Text);
                connessione.setPASS = (textBox7.Text);


        }

        private void textBox12_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox11_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
 
Cioè fammi vuoi creare una classe per discinnetterti e connetterti e non mettere tutto nella funzione del click del bottone?

Sent from my XT910 using Tapatalk
 
Ultima modifica:
Prima di tutto ti serve un data provider per connetterti al database: NpgSQL (cercalo su Internet - dovrebbe supportare ogni cosa che non sia al di fuori dello standard, tutto ciò che vuoi fare richiamando sql, nonchè supporti le funzioni, ossia le stored procedure).
Istanzi la classe in questo modo:
Codice:
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=admin;Password=admin;Database=nomedatabase;");
se vuoi qualcosa di più ordinato, crei due procedure a parte dove vuoi tu che aprono/chiudono la connessione:
Codice:
// connette
public void Connection()
{
try
{
conn.Open();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}

// disconnette
public void Disconnection()
{
try
{
conn.Close();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
e per finire le richiami quando è necessario: Connection() - Disconnection().
 
Stato
Discussione chiusa ad ulteriori risposte.