[C#] Multidim. array voor parameters

Pagina: 1
Acties:

  • Elect
  • Registratie: Mei 2000
  • Niet online
Ik krijg het niet voor elkaar om via een multidimensionele array een variabel aantal parameters mee te geven aan mijn database class.

Ik heb op een willekeurige pagina een 2 dimensionele array aangemaakt, die met de aanvraag voor een DataView meegaat.
code:
1
2
3
4
5
6
string[,] Array = new string[,]
{
      {"Test1", "Test2"}
};

DataView Business = Database.spDataView("ProjectsDropDownBusiness", Array);
Volgens de debugger komt het allemaal goed aan. Maar daarna wil ik bij het aanroepen van een stored procedure variabel mijn parameters mee kunnen geven.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public DataView spDataView(string spName, string[,] spParameters)

            //Make SQL connection
            String conSql = ConfigurationSettings.AppSettings["sqlConnection"];
            SqlConnection conMain = new SqlConnection (conSql);

            //Set connection to the specified Stored Procedure
            SqlCommand cmdMain = new SqlCommand (spName, conMain);
            cmdMain.CommandType = CommandType.StoredProcedure;

            //Add Parameters
/*
            for (int i = 0; i < spParameters.Length;i++)
            {
            //Dit werkt dus niet..
            cmdMain.Parameters.Add({0}.ToString(), {1});
            }
Ik heb een hoop geprobeerd, maar krijg met zowel For als ForEach geen resultaat terug (eigenlijk alleen foutmeldingen)
Hoop dat iemand wel een makkelijke oplossing heeft. Het moet niet op deze manier, maar dit leek me de makkelijkste/meest dynamische.

[ Voor 5% gewijzigd door Elect op 22-03-2006 10:08 ]

HelmChat.eu - Free Motorcycle Group Chats


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:31
Natuurlijk werkt die lijn code niet; wat had je gedacht ?
Van waar moet die {0} en die {1} komen ? Je moet natuurlijk aangeven dat hij dat uit die array moet halen.
code:
1
2
3
4
for( int i = 0; i < spParameters.Length; i++ )
{
    cmdMain.Parameters.Add (spParameters[i][0], spParameters[i][1]);
}

Echter, ik denk dat je in dit geval ipv met een 2 dimensionale array beter met een Hashtable kunt werken, waarbij je parameter-name de key is en je value de 'value'.

https://fgheysels.github.io/


  • Elect
  • Registratie: Mei 2000
  • Niet online
Thnx, ik heb het geprobeerd, maar hij gaf alsnog een foutmelding bij "spParameters[i][0]". Hij verwachtte er 2 maar kreeg ze niet. Het leek me gewoon te kloppen.

Ben even verder gaan zoeken naar de hashtables en dat ziet er goed uit. Heb ze kunnen implementeren en werkt prima! Bedankt!

HelmChat.eu - Free Motorcycle Group Chats


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:31
Elect schreef op woensdag 22 maart 2006 @ 10:47:
Thnx, ik heb het geprobeerd, maar hij gaf alsnog een foutmelding bij "spParameters[i][0]". Hij verwachtte er 2 maar kreeg ze niet. Het leek me gewoon te kloppen.
Eh, ja, sorry maar dat komt omdat mijn voorbeeld gebruik maakt van jagged arrays.
Zo zou het moeten zijn (maar met een beetje moeite had je er zelf ook moeten opkomen)
code:
1
2
3
4
for( int i = 0; i < spParameters.Length; i++ )
{
    cmdMain.Parameters.Add (spParameters[i,0], spParameters[i,1]);
}

[ Voor 4% gewijzigd door whoami op 22-03-2006 10:56 ]

https://fgheysels.github.io/