public AddMaterialRowForm(FormType ftype, string tag, MaterialsRow data, long key) { InitializeComponent(); switch (ftype) { case FormType.ADDFORM: this.Text = "Добавление записи в таблицу"; break; case FormType.EDITFORM: this.Text = "Редактирование записи"; break; } TableTag = tag; FType = ftype; Key = key; InitializeData(); LoadDataToControls(data); }
public static MaterialsRow ConvertRowInfoToMaterialRow(GridViewRowInfo row) { MaterialsRow res = new MaterialsRow(); res.Code = (long)row.Cells[0].Value; res.Designation = row.Cells[1].Value.ToString(); res.UnitCode = Convert.ToInt32(row.Cells[2].Value); return res; }
public static DatabaseLib.ParametersCollection ConvertMaterialRowToParameters(MaterialsRow row) { DatabaseLib.ParametersCollection par = new DatabaseLib.ParametersCollection(); par.Add("MaterialCode", row.Code, DbType.UInt64); par.Add("Name", row.Designation, DbType.String); par.Add("UnitType", row.UnitCode, DbType.Byte); return par; }
public static MaterialsRow ConvertDataTableRowToMaterialRow(DataTable dt) { MaterialsRow res = new MaterialsRow(); res.Code = dt.Rows[0].Field<long>(0); res.Designation = dt.Rows[0].Field<string>(1); res.UnitCode = Convert.ToInt32(dt.Rows[0].ItemArray.GetValue(2)); return res; }
/// <summary> /// Загрузка данных из файла для таблицы "Справочник технических материалов" /// </summary> /// <param name="fname">Полный путь к тектовому файлу с данными для заполнения</param> /// <returns>Возвращает массив структур struct MaterialsRow, описывающий строки таблицы "Справочник материалов"</returns> public static MaterialsRow[] LoadDataForReferenceMaterials(string fname) { StreamReader file = new StreamReader(fname); int count = 0; string[] mas = new string[0]; while (!file.EndOfStream) { string str = file.ReadLine(); count++; Array.Resize(ref mas, count); mas[count - 1] = str; } file.Close(); MaterialsRow[] Mat = new MaterialsRow[count]; for (int i = 0; i < count; i++) { string[] tmp = mas[i].Split('\t'); Mat[i].Code = Convert.ToInt64(tmp[0]); Mat[i].Designation = tmp[1]; Mat[i].UnitCode = Convert.ToInt32(tmp[2]); } return Mat; }
// кнопка ОК private void okButton_Click(object sender, System.EventArgs e) { if (radTextBox1.Text != "" && radTextBox1.Text != " " && radTextBox2.Text != "" && radTextBox2.Text != " " && radMultiColumnComboBox1.SelectedIndex < 0) { MaterialsRow row = new MaterialsRow(); row.Code = Convert.ToInt64(radTextBox1.Text); row.Designation = radTextBox2.Text; row.UnitCode = radMultiColumnComboBox1.SelectedIndex + 1; switch (FType) { case FormType.ADDFORM: // вставка данных в ТБД // проверка кода продукции на совпадение с уже имеющимися (pramary key) if (CheckMaterialCode(Convert.ToInt64(radTextBox1.Text))) { MessageBox.Show("Введеный код материала уже есть! Ключ материала должен быть уникален!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DBWorker.InsertDataRowToTable(TableTag, row); break; case FormType.EDITFORM: // обновление записи в таблице DBWorker.UpdateDataInRow(TableTag, Key, Converter.ConvertMaterialRowToParameters(row)); break; } this.DialogResult = DialogResult.OK; this.Close(); } else MessageBox.Show("Не верно введены данные или не заданы совсем!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
// загрузка данных для редактируемой записи private void LoadDataToControls(MaterialsRow data) { radTextBox1.Text = data.Code.ToString(); radTextBox2.Text = data.Designation; radMultiColumnComboBox1.SelectedIndex = data.UnitCode - 1; }