Я упорядочиваю и извлекаю данные из базы данных в сетку данных, я пытаюсь настроить столбец и строки для отображения требуемых данных, в цикле я пытался сопоставить данные из одного из данных, чтобы получить другие данные для заполненияв сетку данных, к сожалению, я продолжаю получать "Нет строки в позиции 1 ошибка".Я приложил приложение, чтобы проиллюстрировать проблемы, с которыми я столкнулся.
Я просмотрел некоторые посты в stackoverflow, чтобы решить проблемы, но не могу найти проблемы.1. Ошибка Нет строки в позиции 1 2. Нет строки в позиции 1
private void generate_view1(DataTable search_data1)
{
DataTable sample_data1 = new DataTable();
sample_data1 = search_data1.Copy();
sample_data1.Columns.Add("Item_Number");
sample_data1.Columns.Add("Min_Tolerance");
sample_data1.Columns.Add("Max_Tolerance");
var database_select = new DatabaseSelect();
string OrderNo = Order_NO.Text.ToString();
DataTable result_data = new DataTable();
result_data = database_select.LoadTable_DOHEAD(OrderNo);
string SalesNO = result_data.Rows[0]["EAORNO"].ToString();
string Del_index = result_data.Rows[0]["EADLIX"].ToString();
var database_select1 = new DatabaseSelect();
DataTable result_weight = new DataTable();
result_weight = database_select.LoadTable_MITTRA(SalesNO, Del_index);
dataGrid1.ItemsSource = null;
dataGrid1.ItemsSource = sample_data1.DefaultView;
DataGridTextColumn Weight1 = new DataGridTextColumn();
dataGrid1.DisplayMemberPath = sample_data1.Columns["MTTRQT"].ToString();
Decimal sum = Convert.ToDecimal(sample_data1.Compute("SUM(MTTRQT)", string.Empty));
Weight.Text = (sum * -1).ToString();
//******Problems occur in below this part*********//
for (int i = 0; i < sample_data1.Rows.Count; i++)
{
string itemcode = sample_data1.Rows[i]["MTITNO"].ToString();
String ItemNumber = result_weight.Rows[i]["MTITNO"].ToString();
if (itemcode != " ")
{
sample_data1.Rows[i]["Item_Number"] = result_weight.Rows[i]["MTITNO"].ToString();
var database_select2 = new DatabaseSelect();
DataTable result_tolerance = new DataTable();
result_tolerance = database_select.LoadUser_Tolerance(ItemNumber); //** i've include my loadUser Tolerance query in here as well***//
sample_data1.Rows[i]["Min_Tolerance"] = result_tolerance.Rows[i]["Min_Tol"].ToString(); //*** this is the line where i face the problems***//
string MINTOL = result_tolerance.Rows[i]["Min_Tol"].ToString(); //*** i've put in this to illustrate the problems**//
MessageBox.Show(MINTOL); //*** i've put in this to illustrate the problems**//
}
}
Обновлена дополнительная информация (25/4/2019)
Запрос переменной LoadUser_Tolerance (я пытаюсь выбрать минимальный допуск из этого запроса, чтобы вставить его в мою сетку данных) Для желаемых результатов (вы можете ссылаться на иллюстрации выше), у меня возникают эти проблемы, только когда я пытаюсь отобразить MinTolerance для отображенияв моей DataGrid.Я не могу понять, как сделать это правильно.
public DataTable LoadUser_Tolerance(string ItemNO)
{
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = ConString;
conn.Open();
CmdString = "SELECT Item_NO, Min_Tol, Max_Tol FROM MasTolerance where Item_NO ='" + ItemNO + "'";
OdbcCommand cmd = new OdbcCommand(CmdString, conn);
OdbcDataAdapter sda = new OdbcDataAdapter(cmd);
DataTable dt = new DataTable("MasTolerance");
sda.Fill(dt);
return dt;
}
Попытки отладки. Попытка.
if (result_tolerance.Rows.Count > i)
{
sample_data1.Rows[i]["Min_Tolerance"] = result_tolerance.Rows[i]["Min_Tol"].ToString();
string MINTOL = result_tolerance.Rows[i]["Min_Tol"].ToString();
MessageBox.Show(MINTOL + i);
}
else
{
MessageBox.Show("Error"); //** i can display the Item number in row 1, but Min tolerance for the Row 1 can't be display**//
}
Извините, что все это так долго, но у меня нет выбора.