• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 900
  • Last Modified:

How to cast/convert a datatablecolumn to string ?


How to cast/convert a datatablecolumn  to string ?

["import_policeid"]is a typeof integer

parentView.Table.Columns["import_policeid"].Expression = "Convert(["import_policeid"],System.String)";

throws this exception
Property Expression can not be used , because there is a cirkular reference in the expression

Thanks
0
vbturbo
Asked:
vbturbo
  • 3
  • 2
  • 2
  • +1
1 Solution
 
bungHocCommented:
Table.Columns["Import_policeID"].ToString() should do the job.
0
 
MogalManicCommented:
Another way to do it is to use the Convert class.  It is a class that contains static methods that will convert any object to the requested type (it throws an exception if the type is incompatible, i.e. convert int to date).

So to convert 'import_policeid' to string you would do this:
   string strImportPoliceId=Convert.ToString(parentView.Table.Rows[rowNum]["import_policeid"]);
0
 
vbturboAuthor Commented:
MogalManic:

The reason i want convert the ["import_policeid"] to string is that i need to apply a row filter on a column which datatype is integer.

.RowFilter = "import_policeid Like '%" & txtsearch.Text & "%'"

and i cannot use the LIKE operator on a column that is type of int.

bungHoc:

Your line states that " Value type of string cannot be converted to a dataview
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
bungHocCommented:
Okay.. thought you just need to convert the entire column to string. But if what you needed is to convert it then import back to DataTable that line won't work.

From top of my head, this is the way to set DataColumn's datatype:
Table.Columns["Import_PoliceID"].DataType = System.Type.GetType("System.String");

If it doesn't work let me know, get back to you in a couple of hours when I get back to my workstation with a running C#.
0
 
vbturboAuthor Commented:
bungHoc:

It Throws the following exception:
Datatype for a column can not be altered when the column contains data.

at the middle of this page it shows how to convert a datatable column

but where am i dropping the ball ?

https://msdn2.microsoft.com/en-us/library/system.data.datacolumn.expression(VS.71).aspx

The following functions are also supported:

CONVERT

Description Converts given expression to a specified .NET Framework Type.
Syntax Convert(expression, type)
Arguments expression-- The expression to convert.
type-- The .NET Framework type to which the value will be converted.
 

Example: myDataColumn.Expression="Convert(total, 'System.Int32')"

Thanks
0
 
j-w-thomasCommented:
Hi vbturbo,

I am sure that you have already thought of this, but if the column is an integer value and you want to filter by number, can you use greater than or less than:

objDS.RowFilter = "import_policeid > 50"

I have not tried this, so I may be out-to-lunch

John
0
 
MogalManicCommented:
If you actually want to use the like operator you can use the Convert function inside the filter like this:
  objDs.RowFilter = "Convert(import_policeid, 'System.String')  Like '%" & txtsearch.Text & "%'"

which will return rows that "contain" the value of txtsearch.Text.  For example if import_policeid datavalues were
  100
  200
  205
  304
  0
  2
and txtsearch.text was "2" then the result set would be
  200
  205
  2
0
 
vbturboAuthor Commented:
MogalManic:

That did it

Thanks to all for colaborating
0

Featured Post

NEW Veeam Backup for Microsoft Office 365 1.5

With Office 365, it’s your data and your responsibility to protect it. NEW Veeam Backup for Microsoft Office 365 eliminates the risk of losing access to your Office 365 data.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now