Om jag har en provider, tex System.Data.SqlClient och utifrån den vill jag plocka ut dess commandtyp, i det här fallet System.Data.SqlClient.SqlCommand. Av nyfikenhet: varför vill du göra detta? Om du beroende på typ skall göra olika saker behöver du väl ändå en select case? Jag vill helt enkelt att man ska kunna ange en databasprovider i web.config och sen dynamiskt skapa command och connectionobjekt. Du menar som MaxVirtual.Data http://www.maxvirtual.com/OpenSrc.aspx?id=1 eller Generic ADO.NET http://sourceforge.net/projects/genadonet/ ? Att använda ASP .NET 2.0 är inte aktuellt, även om jag verkligen gillar den lösningen. Kan du inte skapa en funktion som läser vilken provider du använder i web.config och sedan returnerar "rätt" command-objekt? Jag antar att du gör så för din connection? Det är precis så jag vill göra. Problemet gäller även Connection så jag har inte löst det. Något i denna stilen kanske? Jo precis, hade hoppats på att slippa hårdkoda in den mappningen men det kanske är så.Få ut commandttypen utifrån providern
Finns det något smidigt sätt att göra det här eller måste jag ha en select case där jag ha med alla providers och vad dess commandobjekt heter?Sv: Få ut commandttypen utifrån providern
Jag säger inte att du gör "fel", jag blir bara nyfiken.
/AndreasSv:Få ut commandttypen utifrån providern
Vore ju inga problem att, som du säger, göra det med select case. Men det vore snyggare om jag slapp ange alla möjliga providers.Sv: Få ut commandttypen utifrån providern
Varför inte använda någon befintlig?
Eller använda motsvarande funktionalitet i .NET 2.0 : Generic Coding with the ADO.NET 2.0 Base Classes and Factories <ur:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vsgenerics.asp>.
/AndreasSv:Få ut commandttypen utifrån providern
Att använda externa bibliotek möts av lite motstånd här
Dessutom är jag i princip klar, enda "felet" är att du förutom providern får ange namnet på command och connection i web.config =)Sv: Få ut commandttypen utifrån providern
/JohanSv:Få ut commandttypen utifrån providern
Sv: Få ut commandttypen utifrån providern
public IDbConnection GetConnection()
{
switch (HämtaProviderTyp())
{
case "sqlserver":
return new System.Data.SqlClient.SqlConnection();
break;
case "oledb":
return new System.Data.OleDb.OleDbConnection();
break;
}
}
public IDbCommand GetCommand()
{
switch (HämtaProviderTyp())
{
case "sqlserver":
return new System.Data.SqlClient.SqlCommand();
break;
case "oledb":
return new System.Data.OleDb.OleDbCommand();
break;
}
}
/Johan
Sv:Få ut commandttypen utifrån providern
Som jag har det nu så får man ange namnet på providern och på Commandobjektet i web.config. Fungerar alldeles utmärkt men det hade kanske vart snyggare att bara ha providern