Convert int to String Error

G

Guest

This worked in the command window while in debug mode

?table.Rows[0].ItemArray["ColumnName"].ToString()
"f0165f94-648f-4997-b578-11d89c8b1f61"

But gives the error below when I compile.

Cannot implicitly convert type 'string' to 'int' and the word ColumnName is
underlined.

Here is a code snippett (with error line marked with an asterisk):

DataSet ds = new DataSet();
ds.ReadXml(@"D:\Data\test.xml", XmlReadMode.ReadSchema);

foreach (DataTable table in ds.Tables)
{

for (int index = 0; index <= table.Rows.Count; index++)
{

{
SqlCommand command = new SqlCommand("ImportData", conn);
command.CommandType = CommandType.StoredProcedure;
adapter.InsertCommand = command;

SqlParameter param;

param = command.Parameters.Add("@columnID", SqlDbType.UniqueIdentifier);
* param.Value = new
Guid(table.Rows[index].ItemArray["ColumnName"].ToString());
}
}
}

Did I do something wrong that I am not seeing, or is there another way to
reference a column?
 
N

Nicholas Paldino [.NET/C# MVP]

Mike,

This should not have worked in the command window.

The reason it fails when you compile is because the ItemArray property
returns an array of values representing the row. Arrays are indexed on
integers, not strings, which is why you can't compile it.

Hope this helps.
 
G

Guest

That syntax works...thanks.

Ignacio Machin ( .NET/ C# MVP ) said:
Hi,

Just use

table.Rows[0]["ColumnName"].ToString()


--
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation



Mike Collins said:
This worked in the command window while in debug mode

?table.Rows[0].ItemArray["ColumnName"].ToString()
"f0165f94-648f-4997-b578-11d89c8b1f61"

But gives the error below when I compile.

Cannot implicitly convert type 'string' to 'int' and the word ColumnName
is
underlined.

Here is a code snippett (with error line marked with an asterisk):

DataSet ds = new DataSet();
ds.ReadXml(@"D:\Data\test.xml", XmlReadMode.ReadSchema);

foreach (DataTable table in ds.Tables)
{

for (int index = 0; index <= table.Rows.Count; index++)
{

{
SqlCommand command = new SqlCommand("ImportData", conn);
command.CommandType = CommandType.StoredProcedure;
adapter.InsertCommand = command;

SqlParameter param;

param = command.Parameters.Add("@columnID",
SqlDbType.UniqueIdentifier);
* param.Value = new
Guid(table.Rows[index].ItemArray["ColumnName"].ToString());
}
}
}

Did I do something wrong that I am not seeing, or is there another way to
reference a column?
 
G

Guest

Thanks, that helps a lot...especially in knowing why it did not work.

Nicholas Paldino said:
Mike,

This should not have worked in the command window.

The reason it fails when you compile is because the ItemArray property
returns an array of values representing the row. Arrays are indexed on
integers, not strings, which is why you can't compile it.

Hope this helps.


--
- Nicholas Paldino [.NET/C# MVP]
- (e-mail address removed)

Mike Collins said:
This worked in the command window while in debug mode

?table.Rows[0].ItemArray["ColumnName"].ToString()
"f0165f94-648f-4997-b578-11d89c8b1f61"

But gives the error below when I compile.

Cannot implicitly convert type 'string' to 'int' and the word ColumnName
is
underlined.

Here is a code snippett (with error line marked with an asterisk):

DataSet ds = new DataSet();
ds.ReadXml(@"D:\Data\test.xml", XmlReadMode.ReadSchema);

foreach (DataTable table in ds.Tables)
{

for (int index = 0; index <= table.Rows.Count; index++)
{

{
SqlCommand command = new SqlCommand("ImportData", conn);
command.CommandType = CommandType.StoredProcedure;
adapter.InsertCommand = command;

SqlParameter param;

param = command.Parameters.Add("@columnID",
SqlDbType.UniqueIdentifier);
* param.Value = new
Guid(table.Rows[index].ItemArray["ColumnName"].ToString());
}
}
}

Did I do something wrong that I am not seeing, or is there another way to
reference a column?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top