Martin Hinks wrote:
Hi Eric,
First off, why are you enclosing the array name in curly braces?
MyArray[i, 0] should do the trick...
Heh; I meant to imply that that was just an example array name. I
should have just left them out of the example, as they were unnecessary.
Secondly, how is your array defined? Have you checked that the
exception thrown isn't an "Out of range exception"? If it IS an
out-of-range exception you need to declare your array differently, if
not, post the declaration as well and i'll try to help more.
Thanks,
Martin Hinks
Thanx for your time.
It seems the problem was not, as I first supposed, directly related to
the array. Actually the example I gave compiles fine... but it wasn't
exactly what I was doing :-P.
The actual loop is as follows:
foreach ( DataTable table in loaded_chart.Tables )
{
// Repeat for each row in the table.
int i = 0;
foreach ( DataRow row in table.Rows )
{
lms_table[i, 0] =
Convert.ToSingle(row[keytext]);
lms_table[i, 1] = Convert.ToSingle(row["L"]);
lms_table[i, 2] = Convert.ToSingle(row["M"]);
lms_table[i, 3] = Convert.ToSingle(row["S"]);
Console.WriteLine("Round {0}, Key = {1}, L = {2}, M = {3}, S = {4}",
i, lms_table[i, 0], lms_table[i, 1], lms_table[i, 2], lms_table[i, 3]);
i ++;
}
}
The exception I get is:
Unhandled Exception: System.InvalidCastException: Cannot cast from
source type to destination type.
in <0x0001d> System.DBNull:System.IConvertible.ToSingle
(IFormatProvider provider)
in <0x00086> System.Convert:ToSingle (System.Object value,
IFormatProvider provider)
in <0x00016> System.Convert:ToSingle (System.Object value)
in <0x00277> CDurry.coredurry:lms_load (System.String chart, Int32
gender)
in <0x0024a> consdurry:Main ()
The weird thing is that it executes once flawlessly, giving me the
first row of the dataset printed on the screen; the exception is thrown
the second time around.
The array is declared at the first line of the class as:
static float[,] lms_table = new float[1000, 4];
Any help?
Thanx again,
SigmaX
On 10/3/05, Eric Scott <[EMAIL PROTECTED]> wrote:
I have a newbie C# question that I've been having difficulties
finding an answer to. I have a global array, and am trying to assign
data to it from as follows:
int i = 0;
foreach ( DataRow row in table.Rows )
{
{MyArray}[i, 0] = a;
{MyArray}[i, 1] = x;
{MyArray}[i, 2] = y;
{MyArray}[i, 3] = z;
i ++;
}
All the code executes properly once, but then stalls the second time
it attempts to go through the loop. I've gathered there's something
quarky about using arrays in a loop like this, but I haven't found any
down-to-earth explanations that let me know how to fix my code.
Thanx for any help you can offer,
SigmaX
--
My home page: www.sigmax.cjb.net
"Education is what remains after one has forgotten everything he learned in
school"
-Albert Einstein
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list
--
Martin Hinks
http://www.m-s-d.net
--
My home page: www.sigmax.cjb.net
"Education is what remains after one has forgotten everything he learned in
school"
-Albert Einstein
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list