PDA

View Full Version : سوال: مشکل در کد نویسی



darknalk
جمعه 25 مهر 1393, 17:00 عصر
ببخشید کد زیر خط آخرش یعنی متود asteel_total ارور میده مشه راهنمایی کنید
double Dmid,Dcorner,NoBarA3,NoBarA2,rebNom,Asteel_Total = 0; NoBarA3 = 6;
NoBarA2 = 3;
double h = double.Parse(txt_B_column.Text, System.Globalization.NumberStyles.Float);
double Cover = double.Parse(txt_Cover.Text, System.Globalization.NumberStyles.Float);
double b = double.Parse(txt_B_column.Text, System.Globalization.NumberStyles.Float);




Dmid = double.Parse(txt_BarSize.Text, System.Globalization.NumberStyles.Float);
Dcorner = double.Parse(txt_Corner_Bar.Text, System.Globalization.NumberStyles.Float);


DataRow row;
DataTable Axis2 = GetDt("Axis2");


dataSet = new DataSet();
// Add the new DataTable to the DataSet.
dataSet.Tables.Add(Axis2);
for (int i = 1; i < NoBarA3; i++)
{


row = Axis2.NewRow();
row["id"] = i;
row["ds"] = ((h - 2 * Cover) / (NoBarA3 - 1)) * (i - 1) + Cover;
if (i == 1 || i == (NoBarA2 - 2))
{
rebNom = NoBarA2 - 2;
row["As"] = rebNom * Math.PI * Math.Pow(Dmid, 2) * 0.25 + 2 * Math.PI * Math.Pow(Dcorner, 2) * 0.25;
}
else
{
row["As"] = 2 * Math.PI * Math.Pow(Dmid, 2) * 0.25;
}
row["SteelMaterial_ID"] = cmb_Steel_DSC.SelectedItem;


}


DataTable Axis3 = GetDt("Axis3");
dataSet = new DataSet();
// Add the new DataTable to the DataSet.
dataSet.Tables.Add(Axis3);
for (int i = 1; i < NoBarA2; i++)
{
row = Axis3.NewRow();
row["id"] = i;
row["ds"] = ((b - 2 * Cover) / (NoBarA2 - 1)) * (i - 1) + Cover;
if (i == 1 || i == NoBarA2)
{
rebNom = NoBarA3 - 2;
row["As"] = rebNom * Math.PI * Math.Pow(Dmid, 2) * 0.25 + 2 * Math.PI * Math.Pow(Dcorner, 2) * 0.25;
}
else
{
row["As"] = 2 * Math.PI * Math.Pow(Dmid, 2) * 0.25;
}
row["SteelMaterial_ID"] = cmb_Steel_DSC.SelectedItem;
}


//Axis3.Rows[1][1].ToString();
//dgv_DS_C.DataSource = dataSet;
for (int i = 1; i < NoBarA3; i++)
{
Asteel_Total = Asteel_Total + double.Parse(Axis3.Rows[i][1].ToString(), System.Globalization.NumberStyles.Float);


}

behzadkhan
جمعه 25 مهر 1393, 17:58 عصر
با سلام

لطفا متن پیغام خطا را بگذارید.

با تشکر

darknalk
جمعه 25 مهر 1393, 19:04 عصر
اینم متن ارور
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in System.Data.dll


Additional information: There is no row at position 1.
با تشکر فراوان:گریه:

behzadkhan
جمعه 25 مهر 1393, 19:23 عصر
با سلام

خطا به این معناست که به اندیس از آرایه مراجعه می کنید که وجود ندارد.

شمارش اندیس را از صفر شروع کنید. و شرط حلقه را به تعداد سطر های جدول تغییر دهید.


for (int i = 0; i < Axis3.Rows.Count; i++) {

Asteel_Total = Asteel_Total + double.Parse(Axis3.Rows[i][1].ToString(), System.Globalization.NumberStyles.Float);

}




ببین مشکلت برطرف می شه.

با تشکر

darknalk
جمعه 25 مهر 1393, 20:29 عصر
نه دوست عزیز هنوز هم از روی این رد میشه اصلا for اجرا نمیشه چون Axis3.Rows.Count = 0 و من نمی فهمم چرا درصورتی که من در بالا پرش کردم

behzadkhan
جمعه 25 مهر 1393, 23:21 عصر
با سلام

دوست عزیز شما باید در انتهای حلقه for‌ دستور زیر را وارد کنید:


Axis3.Rows.Add(row);

با تشکر