Vraag : Hoe te om ongeldige kolommen met de lezer van orakelgegevens over te slaan

Hallo bevat de deskundigen, code
the onder de werken maar hoe ik het ertoe breng om ongeldige kolommen in plaats van door een exception
" Kolom te omvatten ONGELDIGE gegevens "

thanks
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
public statische nietige Leiding (koord [] args)
        {


            OracleConnection bedriegt = nieuwe OracleConnection ();
            bedrieg = nieuwe OracleConnection („Gegevens Source= **; Gebruiker - identiteitskaart = **; Password= **“);
            OracleCommand cmd = nieuwe OracleCommand ();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd. De verbinding = bedriegt;

            cmd.CommandText = „HE_GETGRADES“;
            cmd. Parameters.Add („grades_cursor“, OracleDbType.RefCursor);
            cmd. Parameters [„grades_cursor“]. Richting = ParameterDirection.ReturnValue;
            cmd. Parameters.Add („vp_id“, OracleDbType.Decimal). Waarde = 15000028435389;

            bedrieg. Open ();
            De lezer van OracleDataReader;
            lezer = cmd.ExecuteReader ();
            terwijl (lezer. Lees ())
            {
                Console.WriteLine („\ t {0} \ t {1}“, reader.GetName (0),
                    reader.GetName (1));

                terwijl (lezer. Lees ())
                {
                    Console.WriteLine („\ t {0} \ t {1}“, reader.GetString (0),
                        reader.GetString (1));
                }
                reader.NextResult ();

                //if (lezer. Lees ())

                // {
                // //Console.WriteLine („Mijn resultaat is: “ + reader.GetString (1));
                // Console.WriteLine („{0} \ t {1}“, reader.GetString (0),
                // reader.GetString (1));

                // Console.ReadLine ();

                //}
                //else
                // {
                // Console.WriteLine („Geen Gevonden Rijen. “);
                // Console.ReadLine ();
                //}
                bedrieg. Sluit ();
                bedrieg. Schik ();
            }
        }
    }
}

Antwoord : Hoe te om ongeldige kolommen met de lezer van orakelgegevens over te slaan

Hier is wat ik op met kwam.  Als er nog problemen zijn, voeg gelieve toe/aan mijn test SQL af te trekken zodat kan ik de fout op mijn eind reproduceren.

Gezien het gegevensbestand heeft bezwaar:

de zuivering van de dalingslijst tab1;
cre�ër lijst tab1 (col1 aantal, someColumn varchar2 (20), thirdColumn klusje (1));

tussenvoegsel in tab1 waarden (15000028435389, „Hello“, „Z“);
tussenvoegsel in tab1 waarden (25000028435389, „Wereld“, „Z“);
tussenvoegsel in tab1 waarden (25000028435389, ongeldig, „Z“);
bega;

cre�ër of vervang functie myFunc (inputID aantal)
keer sys_refcursor terug
is
myresult sys_refcursor;
begin
open myresult voor uitgezocht * van tab1 waar col1=inputID;

terugkeer myresult;
eind;
/


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
het gebruiken van Systeem;
het gebruiken van System.Data;

het gebruiken van Oracle.DataAccess.Client;
het gebruiken van Oracle.DataAccess.Types;

openbaar klassenLoodje
{

	openbare statische nietige Leiding (koord [] args)
	{


			OracleConnection bedriegt = nieuwe OracleConnection ();

			bedrieg = nieuwe OracleConnection („Gebruiker - identiteitskaart =bud; Password=bud; Gegevens Source=bud“);

			OracleCommand cmd = nieuwe OracleCommand ();
			cmd.CommandType = CommandType.StoredProcedure;
			cmd. De verbinding = bedriegt;
			cmd.CommandText = „myFunc“;

			cmd. Parameters.Add („myResult“, OracleDbType.RefCursor);

			cmd. Parameters [„myResult“]. Richting = ParameterDirection.ReturnValue;

			cmd. Parameters.Add („myInput“, OracleDbType.Int64). Waarde = 25000028435389;

			bedrieg. Open ();


      		De lezer van OracleDataReader;
			bool haveRows = vals;

	        lezer = cmd.ExecuteReader ();
	        
	        	terwijl (lezer. Lees ()) {
					Console.WriteLine („=========================“);
					Console.WriteLine („Column1 heeft: “ + (Convert.IsDBNull (reader.GetValue (0))? „verklaar“ nietig: reader.GetDecimal (0) .ToString ()));
					Console.WriteLine („Column2 heeft: “ + (Convert.IsDBNull (reader.GetValue (1))? „verklaar“ nietig: reader.GetString (1)));
					Console.WriteLine („Column3 heeft: “ + (Convert.IsDBNull (reader.GetValue (2))? „verklaar“ nietig: reader.GetString (2)));
					haveRows = waar;
				}


				als (! haveRows) {
					Console.WriteLine („Geen Gevonden Rijen. “);
				}

			bedrieg. Sluit ();
			bedrieg. Schik ();

	}

}
Andere oplossingen  
 
programming4us programming4us