Se “Opération Non Valide. La Connexion est fermée” erreur lors de la tentative de mise à jour oracle à partir d'un programme visual c#

J'ai un programme visual c# en cours d'exécution, mais j'ai une connexion est fermée d'erreur à chaque fois que j'essaie de mettre à jour. Voici ce que mon code ressemble à ceci:

private void Update()
{
try
{
String OneMachineScheduleOrder = "";
String series = "";
String oven = "";
String battery = "";
int x,y;
var sortedTextboxes = panel1.Controls
.OfType<TextBox>() //get all textboxes controls
.OrderBy(ctrl => ctrl.TabIndex); //order by TabIndex
foreach (TextBox txt in sortedTextboxes)
{
//Console.WriteLine(Convert.ToInt32(txt.TabIndex/2+1) + ": " + txt.Text);
OneMachineScheduleOrder = (txt.TabIndex / 2 + 1).ToString();
series = txt.Text.Substring(0, 1);
oven = txt.Text.Substring(1, 2);
battery = txt.Text.Substring(4).Trim();
if (Char.IsLetter(series[0]) && int.TryParse(oven, out y) && int.TryParse(battery, out x) && txt.Text[3].Equals('/'))
{
using (OracleConnection con = new OracleConnection(connectString))
{
OracleCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "update Oven_Master set SERIES = '" + series + "', OVEN = '" + oven + "', BATTERY = '" + battery + "' where ONE_MACHINE_SCHEDULE_ORDER = '" + OneMachineScheduleOrder + "'";
cmd.Connection = con;
cmd.ExecuteNonQuery();
Console.WriteLine(cmd.CommandText);
con.Close();
}
}
else { MessageBox.Show("Number: " + OneMachineScheduleOrder + " Is Invalid!"); }                           
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
connection.Close();
}
}

En gros, j'ai un tas de zones de texte sur le formulaire rempli dans le format A01/01. Je suis trier les zones de texte dans une variable, puis pour chaque zone de texte, j'ai analyser la corporation de données (OneMachineScheduleOrder, de série, d'un four, et de la batterie). Si les données sont dans le bon format, j'utilise un oracleConnection avec un connectionstring est global (et j'ai vérifié avec le débogueur qu'il a la bonne valeur) pour créer un " execute et OracleCommand. Sinon, alerter l'utilisateur que les données sont dans le mauvais format.

Cependant, j'obtiens une erreur que la connexion est ouverte. J'ai essayé de mettre un point d'arrêt sur cette ligne, et je reçois que con = OracleConnection, donc je peux voir qu'il y a est une connexion. Aucune idée d'où aller à partir d'ici.

  • J'ai regardé deux fois, mais je ne peux pas voir tout con.Appel ouvert
  • Où voulez-vous ouvrir la connexion?
  • Cependant, vous avez un gros problème. Il est appelé l'Injection Sql
  • Il n'y a pas de problème si vous n'avez jamais ouvrir la connexion. 🙂
  • Oh bien, vous pouvez dire que
InformationsquelleAutor Alex Kibler | 2014-07-09