Falder igennem på switch grundet DB-kald?
I den følgende switch har jeg et stort problem med scope't:// Bruger/ekspedient scanner varer eller returnere ved 'H'
switch (myCSK)
{
case "H":
Program HvMn = new Program();
HvMn.StartAlt();
break;
case "S":
StartSalg();
break;
case "V":
bool visBoolForfra = true;
StartSalgVisning(visBoolForfra);
break;
case "K":
Console.WriteLine("\nKvittering...\n");
SammenRegner nySR = new SammenRegner();
nySR.SammenRG(mylist, myCSK, counter, sendRFV);
break;
case "CK":
StartSalgMedKvitt stSalg2 = new StartSalgMedKvitt();
stSalg2.StartSalg();
break;
case "VN":
Console.WriteLine("\n1.2.V Du er nu i varenavns-zonen \n(Ønsker du at returnere til 3-ciferkode-zonen, skal du nu taste '121' og enter)");
myCSK = Console.ReadLine();
if (myCSK == "CK")
{
StartSalg();
}
else
{
Console.WriteLine("Varenavnsloop");
vareNavnsLoop();
}
break;
default:
try
{
string SQLCreateCore = "";
SqlDataReader myWriter = null;
SqlConnection cnn = new SqlConnection("xxx");
SQLCreateCore = "INSERT INTO GerstedtTmpVar (tmpVar) VALUES ('" + myCSK + " ')";
SqlCommand myCommand1 = new SqlCommand(SQLCreateCore, cnn);
myWriter = myCommand1.ExecuteReader();
cnn.Close();
if (Convert.ToInt32(myCSK) > 101 && Convert.ToInt32(myCSK) < 1000)
{
// afvikl hent varenavn og pris til kvitteringsopbygning (før disse med over til sammenregner.cs)
while (mylist.Count > counter)
{
sendRFV = returnValueFaVa;
SammenRegner nySRW = new SammenRegner();
nySRW.SammenRG(mylist, myCSK, counter, sendRFV);
returnValueFaVa = nySRW.SammenRG(mylist, myCSK, counter, sendRFV);
counter += 1;
if (returnValueFaVa == 0 && counter == mylist.Count)
{
returnValueFaVa = -1;
}
else if (returnValueFaVa != 0 && counter == mylist.Count)
{
returnValueFaVa = 0;
}
}
if (returnValueFaVa == -1)
{
Console.WriteLine("Varenummeret genkendes ikke - Prøv igen.");
returnValueFaVa = 0;
counter = 0;
StartSalg();
}
counter = 0;
if (myCSK != "K")
{
StartSalg();
}
}
else
{
// Her udskrives at valget ikke er rigtigt indtastet
Console.WriteLine("Indtastning genkendes ikke (dine bogstaver skal skrives med stort, og/eller varenummeret skal have 3 cifre) - Prøv igen.");
if (myCSK != "K")
{
StartSalg();
}
}
}
catch {
if (myCSK != "K")
{
Console.WriteLine("Varenummeret genkendes ikke, da du har tastet 'ingen-tegn'/specialtegn eller bogstaver.\n Såfremt du ønsker at søge på et varenavn nu, skal du taste 'VN'");
StartSalg();
}
}
break;
}
- - -
->> Vælger jeg at udkommentere dette stykke:
string SQLCreateCore = "";
SqlDataReader myWriter = null;
SqlConnection cnn = new SqlConnection("xxx");
SQLCreateCore = "INSERT INTO GerstedtTmpVar (tmpVar) VALUES ('" + myCSK + " ')";
SqlCommand myCommand1 = new SqlCommand(SQLCreateCore, cnn);
myWriter = myCommand1.ExecuteReader();
cnn.Close();
->> .. fungerer scriptet igen, på en sådan måde at :
if (Convert.ToInt32(myCSK) > 101 && Convert.ToInt32(myCSK) < 1000)
{ ... etc.
->> .. bliver kørt rigtigt og min vare bliver indskrevet.
Hvad gør jeg for at scope't afvikles ordentligt MED db-kaldet aktivt (ikke-udkommenteret)?