problems with type conversion...

B

Brad Pears

I am using a function called "CreateSQLParam" which adds SQL parameters to a
collection.

The function is shown below... I add a parameter to a collection using the
following line code...

dim colParms as collection

' Add a paramter to the collection
colParms.Add(CreateSQLParam("@vcContractNo", ContractNo, SqlDbType.VarChar,
ParameterDirection.Input)

I am getting an error on the "ContractNo" field in the above line that says
"option strict on disallows narrowing from type "object" to type "string"
in copying teh value of ByRef parameter "sValue" back to the matching
argument
Here is the function...

Function CreateSQLParam(ByVal sName As String, ByRef sValue As Object, ByVal
varType As System.Data.SqlDbType, ByVal varDir As ParameterDirection) As
SqlClient.SqlParameter

Dim objParam As SqlClient.SqlParameter

objParam = New SqlClient.SqlParameter()

objParam.ParameterName = sName

If IsNothing(sValue) Then sValue = System.DBNull.Value

objParam.Value = sValue

objParam.SqlDbType = varType

objParam.Direction = varDir

CreateSQLParam = objParam

End Function


Can someone help me out with what I need to do to get this working
properly??

Thanks, Brad
 
A

Armin Zingler

Brad Pears said:
I am using a function called "CreateSQLParam" which adds SQL
parameters to a collection.

The function is shown below... I add a parameter to a collection
using the following line code...

dim colParms as collection

' Add a paramter to the collection
colParms.Add(CreateSQLParam("@vcContractNo", ContractNo,
SqlDbType.VarChar, ParameterDirection.Input)

I am getting an error on the "ContractNo" field in the above line
that says "option strict on disallows narrowing from type "object" to type
"string" in copying teh value of ByRef parameter "sValue"
back to the matching argument
Here is the function...

I guess "ContractNo" is declared as String. What if sValue returns
System.DBNull.Value? It could not be stored in a string variable. If you
don't want sValue to return a value, declare it ByVal.


Armin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top