Aquest troç de codi es correspon al botó ADD del Generador. El codi està dividit en dos parts, una del botó pròpiament dit i l'altra de l'operació. El codi del botó està en el codi del formulari (no podria estar en un altra lloc), mentre que el codi que genera la sentència SQL està en la clsCamp. Primer el codi del formulari, bàsicament és un IF que distingeix on enviar l'operació, si a un servidor de BBDD o bé a un fitxer. Quan és l'opcio de BBDD cal obrir i tancar connexió.
private void btnADD_Click(object sender, EventArgs e)
{
btnADD.Enabled = false;
try
{
clsTaula Taula = GestorTaules.GetTaula(txtNomTaula.Text);
clsCamp Camp;
SqlConnection CONN;
if (Taula != null)
{
Camp = Taula.BuscaCamp(Taula.NomTaula, txtNomCamp.Text);
if (Camp != null)
{
if (rdbBBDD.Checked)
{
CONN = new SqlConnection();
CONN.ConnectionString = GestorTaules.ConnString;
CONN.Open();
Camp.ADD(CONN);
CONN.Close();
}
else Camp.ADD(GestorTaules.ScriptFile);
txtMissatges.Text += Environment.NewLine + DateTime.Now.ToShortDateString()
+ " " + DateTime.Now.ToShortTimeString()
+ " Camp " + Camp.NomCamp + " creat a la taula " + Taula.NomTaula;
}
}
}
catch (Exception E)
{
txtMissatges.Text += Environment.NewLine + DateTime.Now.ToShortDateString() + " "
+ DateTime.Now.ToShortTimeString() + " ERROR afegint camp: " + E.Message;
}
btnADD.Enabled = true;
}
Ara els dos mètodes de la clsCamp (1 sobrecarregat a 2) amb l'operació ALTER TABLE ADD... . La clsCamp té tota la informació necessària per muntar la sentència.
public void ADD(string ScriptFile)
{
StringBuilder SQL = new StringBuilder();
SQL.Clear();
SQL.AppendFormat("ALTER TABLE {0} ADD {1} {2} ", NomTaula, NomCamp, strTipus);
if (Nulable)
{
SQL.Append("NULL");
}
else
{
SQL.Append("NOT NULL");
}
SQL.Append("\nGO\n");
if (File.Exists(ScriptFile)) File.AppendAllText(ScriptFile, SQL.ToString());
else
{
using (StreamWriter w = File.CreateText(ScriptFile))
{
w.Write(SQL.ToString());
}
}
}
public void ADD(SqlConnection SQLConn)
{
StringBuilder SQL = new StringBuilder();
SQL.Clear();
SQL.AppendFormat("ALTER TABLE {0} ADD {1} {2} ", NomTaula, NomCamp, strTipus);
if (Nulable)
{
SQL.Append("NULL");
}
else
{
SQL.Append("NOT NULL");
}
Utils.ExecuteSQL(SQL.ToString(), SQLConn);
}
|