Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
IDbCommand and Parameters.AddWithValue()
Message
 
 
Information générale
Forum:
ASP.NET
Catégorie:
ADO.NET
Versions des environnements
Environment:
C# 2.0
Divers
Thread ID:
01538772
Message ID:
01538778
Vues:
38
This message has been marked as a message which has helped to the initial question of the thread.
>>>>>Hi,
>>>>>
>>>>>I am working on a case of replacing what the gurus call "programming to class" with "programming to interface" for the following code:
>>>>>
>>>>>First, the code the way it works currently (not with interface)
>>>>>
>>>>>OleDbCommand oCommand = new OleDbCommand();
>>>>>// connectionString is valid string (not shown here)
>>>>>OleDbConnection oConnection = new OleDbConnection(connectionString);
>>>>>oConnection.Open();
>>>>>oCommand.CommandText = "SP_MyProc";
>>>>>oCommand.CommandType = CommandType.StoredProcedure;
>>>>>oCommand.Parameters.AddWithValue( "@par1", cPar1 );
>>>>>
>>>>>
>>>>>The following is my replacement code (simplified):
>>>>>
>>>>>IDbCommand oCommand;
>>>>>idbCommand = new OleDbCommand();
>>>>>// connectionString is valid string (not shown here)
>>>>>OleDbConnection oConnection = new OleDbConnection(connectionString);
>>>>>oConnection.Open();
>>>>>oCommand.CommandText = "SP_MyProc";
>>>>>oCommand.CommandType = CommandType.StoredProcedure;
>>>>>oCommand.Parameters.AddWithValue( "@par1", cPar1 );
>>>>>
>>>>>
>>>>>The problem is that in the lower case code the method .AddWithValue has an error:
>>>>>
>>>>>'System.Data.IDataParameterCollection' does not contain definition for 'AddWithValue'
>>>>>
>>>>>
>>>>>What am I missing? TIA.
>>>>
>>>>I suggest to not use AddWithValue method in any of your new code. Use more verbose, but correct Parameters.Add method where you can specify parameter's type. AddWithValue method has problems and it's even being deprecated.
>>>
>>>But I read in MSDN help that the method Add is deprecated and AddViewValue replaced it.
>>>
>>>http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue(v=vs.90).aspx
>>
>>No, only one particular implementation of the Add method is deprecated (one overload). Use the correct overload.
>
>I will try. Thank you.
>
>But my question was/is still, why the "interface"-based code didn't work but the class-based code does. I am trying to understand these concepts better.

Interface can have fewer methods defined than the actual class implementation based on that interface. Nothing surprising is here.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform