I have a problem, that I can't solve. I'm using SQL Server 2005, C# CLR for using outer dll. The problem is at length of parameter. I need to use as function parameter type varchar(max)
. If at C# code I use string
, SqlSring
, I can't use T-SQL type varchar(max)
, just varchar(4000)
of nvarchar(4000)
. I need to say, that can be situations, when I need to use more then 4000 symbols, so I need know, what C# type I need to use for varchar(max)
.
I have read a lot of articles, and several of them say, that for this I can use SqlChars
. But! I have manipulations with strings. How can I have actions with string
or SqlString
and then convert to SqlChars
? (It is possible SqlChars.ToString()
or SqlChars.ToSqlString()
).
I didn't find any C# code for this.
I found the answer. Not just only me asked about this question. I have to read posts more attentively...
Can read here http://social.msdn.microsoft.com/Forums/is/sqlnetfx/thread/391ebb98-e1b5-47fc-a72d-9f1e39829e3a The problem of CLR compatibility solves not very difficult.
All time I wanted use
varchar(max)
and tried to use C# typesstring
,SqlString
,SqlChars
. Need to use T-SQLnvarchar(max)
, and you can use any of C# typesstring
,SqlString
,SqlChars
!Of course
nvarchar
taking up more space thanvarchar
at two times.Try using length
-1
. Something like this:What you need to do is add SqlFacet(MaxSize = -1) attribute to parameter: