SqlException heeft een 'variabele' Errors (een array). Ik probeer uit te vinden onder welke omstandigheden er meer dan een (1) fout kan zijn opgeslagen in deze variabele.
Heeft iemand enig idee hoe dit precies werkt? Onder welke omstandigheden er meer dan een (1) fout wordt opgeslagen in deze variabele? Zoeken op het web heeft (nog) geen antwoord gegeven. Ik wil dit graag forceren om te kunnen testen.
Onderstaand een stukje code waarin het gebruikt wordt.
Bedankt voor het meedenken.
PS
Zwak punt in bovenstaande code is dat, indien errmsg aan de gebruiker getoond wordt, de structuur van de database gedeeltelijk kan worden bloot gelegd. Ik ben bezig om dat te veranderen.
Heeft iemand enig idee hoe dit precies werkt? Onder welke omstandigheden er meer dan een (1) fout wordt opgeslagen in deze variabele? Zoeken op het web heeft (nog) geen antwoord gegeven. Ik wil dit graag forceren om te kunnen testen.
Onderstaand een stukje code waarin het gebruikt wordt.
C#:
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
| public DataTable execStoredProcedureQuery(string strStoredProcName, Hashtable htParameters, ref string errmsg) { DataTable tbl = new DataTable(); try { using (SqlCommand cmd = new SqlCommand(strStoredProcName, connection)) { cmd.CommandType = CommandType.StoredProcedure; if (htParameters != null) { foreach (DictionaryEntry de in htParameters) { cmd.Parameters.AddWithValue(de.Key.ToString(), de.Value); } } tbl.Load(cmd.ExecuteReader()); } } catch (SqlException sqlex) { errmsg = sqlex.Message; sqlerrors = new SqlError[sqlex.Errors.Count]; sqlex.Errors.CopyTo(sqlerrors, 0); return null; } catch (Exception ex) { errmsg = ex.Message; return null; } return tbl; } |
Bedankt voor het meedenken.
PS
Zwak punt in bovenstaande code is dat, indien errmsg aan de gebruiker getoond wordt, de structuur van de database gedeeltelijk kan worden bloot gelegd. Ik ben bezig om dat te veranderen.
code:
1
2
| Cannot insert duplicate key row in object 'dbo.Decoder' with unique index 'IX_DecoderName'. The duplicate key value is (Explora). The statement has been terminated. |