My C# code looks like this:
myNum = dt.Columns[0];
myNum is an integer and dt is a datatable. The value in column 0 of dt is a string ("12"),开发者_开发知识库 but I'd like to convert it to an integer. How can I do this? I've tried:
myNum = int.Parse(dt.Columns[0]);
...but that doesn't work. Any ideas?
The values are stored in rows and not columns. Try this instead:
myNum = int.Parse(dt.Rows[0][0].ToString());
Your parse wasn't working because the parse method takes a string, and the data comes back as a simple object.
Also, the data is in the rows, so you have two options really, (I prefer the first):
// This converts the object directly to an integer
myNum = Convert.ToInt32(dt.Rows[0][0]);
// This converts the object to a string, and then parses it into an integer
myNum = int.Parse(dt.Rows[0][0].ToString());
if Parse throws an exception, this means dt.Columns[0] is not a valid input. If you want to avoid exception, you can use int.TryParse which returns a boolean telling if the conversion was done or not successfully
EDIT: BTW, Darin must be right: your value is not stored in a column but in a cell
Use TryParse method to parse the Value :
int myNum = 0;
int.TryParse(dt.rows[0][0].ToString() , out myNum);
with above code , If an error occurs , The value of variable will be zero
Convert.ToInt32(dt.Rows[0][0])
The above would be better, if you are dealing with a variety of types, eg doubles (1.0).
精彩评论