Solved

How to cast/convert a datatablecolumn  to string ?

Posted on 2007-11-26
8
893 Views
Last Modified: 2013-11-07

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
Comment
Question by:vbturbo
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 7

Expert Comment

by:bungHoc
ID: 20349332
Table.Columns["Import_policeID"].ToString() should do the job.
0
 
LVL 21

Expert Comment

by:MogalManic
ID: 20349356
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
 
LVL 18

Author Comment

by:vbturbo
ID: 20349407
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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 7

Expert Comment

by:bungHoc
ID: 20349493
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
 
LVL 18

Author Comment

by:vbturbo
ID: 20349555
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
 
LVL 3

Expert Comment

by:j-w-thomas
ID: 20349878
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
 
LVL 21

Accepted Solution

by:
MogalManic earned 500 total points
ID: 20350540
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
 
LVL 18

Author Comment

by:vbturbo
ID: 20352903
MogalManic:

That did it

Thanks to all for colaborating
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question