x
Solved

# .MaxLength.ToString();

Posted on 2011-03-14
Medium Priority
361 Views
when I write

row["Data_Length"] = col.MaxLength.ToString();

it return I get a value of -1.

what does -1 indicate?
0
Question by:Mr_Shaw
• 5
• 4
• 3
• +2

LVL 7

Assisted Solution

mkobrin earned 336 total points
ID: 35129478
it indicates that your statemant is false. What are you trying to do?
0

Author Comment

ID: 35129528

row["Data_Length"] = col.MaxLength.ToString();

0

LVL 10

Assisted Solution

Nash2334 earned 1252 total points
ID: 35129534
-1 indicates that no MaxLength is specified.
0

Author Comment

ID: 35129543
How can I get the length of the data type in a column?
0

LVL 10

Expert Comment

ID: 35129584
The length of the column or the length of the data in the current row?
0

LVL 10

Assisted Solution

Nash2334 earned 1252 total points
ID: 35129594
MaxLength only applies to text columns.  Other columns are limited by their data types.
0

LVL 12

Assisted Solution

Mohamed Abowarda earned 332 total points
ID: 35129630
Check the variable "col", make sure it's associated with a column.
0

Author Comment

ID: 35129646
How do I find out the lenght of the data type in the columns?
0

LVL 9

Assisted Solution

gery128 earned 80 total points
ID: 35129648
Col is a TextBox ? have you set the MaxLength property ?
0

LVL 12

Expert Comment

ID: 35129687
You can determine a datatype at runtime using the following code:
For Each col As DataColumn In MyDatatable.Columns
If col.DataType Is GetType(String) Then
MsgBox(col.ColumnName & " is a string")
End If
If col.DataType Is GetType(Integer) Then
MsgBox(col.ColumnName & " is an integer")
End If
' etc...
Next
0

Author Comment

ID: 35129762
Medo3337... how about getting the length?

eg. the string length
0

LVL 12

Expert Comment

ID: 35129839
Here is SQL to get the field length:
SELECT
sysobjects.name AS "TABLE_NAME",
syscolumns.name AS "COLUMN_NAME",
systypes.name AS "DATA_TYPE",
syscolumns.LENGTH AS "LENGTH"
FROM
sysobjects
INNER JOIN
syscolumns ON sysobjects.id = syscolumns.id
INNER JOIN
systypes ON syscolumns.xtype = systypes.xtype
WHERE
(sysobjects.xtype = 'U') andsysobjects.name = 'MyTableName'
ORDER BY sysobjects.name, syscolumns.colid
0

LVL 10

Accepted Solution

Nash2334 earned 1252 total points
ID: 35129853
If you want the length of a string in a DataColumn that is of type string for a specific DataRow, you need to access the row and column specifically:

myDataRow[0][0].ToString().Length

Will give you the length of the data in cell 0 of row 0.  If it's nullable you should do a null check first.
0

Author Closing Comment

ID: 35129967
thanks
0

## Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.