private void UpdateRow() { InputLanguage.CurrentInputLanguage = _myLanguages[Settings.Default.Know]; if (gridOneMain.CurrentRow == null) { return; } var idstring = gridOneMain.CurrentRow.Cells[0].EditedFormattedValue.ToString(); var feseq = gridOneMain.CurrentRow.Cells[1].EditedFormattedValue.ToString(); var zhuyin = gridOneMain.CurrentRow.Cells[2].EditedFormattedValue.ToString(); var traditional = gridOneMain.CurrentRow.Cells[3].EditedFormattedValue.ToString(); var english = gridOneMain.CurrentRow.Cells[4].EditedFormattedValue.ToString(); //var numpinyin = gridOneMain.CurrentRow.Cells[5].EditedFormattedValue.ToString(); //var critpinyin = gridOneMain.CurrentRow.Cells[6].EditedFormattedValue.ToString(); //var simplified = gridOneMain.CurrentRow.Cells[7].EditedFormattedValue.ToString(); //var cji = gridOneMain.CurrentRow.Cells[8].EditedFormattedValue.ToString(); int idint; var validid = Int32.TryParse(idstring, out idint); if (!validid) { Status.Text = @"Unable to convert row ID from string to int32. Should not have happened!"; //return; } int baseseq; var validbase = Int32.TryParse(txtFEsequence.Text, out baseseq); if (!validbase) { Status.Text = @"F E Sequence not a valid integer. Sorry!"; return; } int intfeseqoffset; var validintfeseq = Int32.TryParse(feseq, out intfeseqoffset); if (!validintfeseq) { Status.Text = @"Updated F E Sequence not a valid integer!. Sorry."; return; } using (var d3K = new Dictionary3000DataContext(Settings.Default.ChineseStudyConnection)) { var trads = from q in d3K._3000_Characters where q.ID == idint select q; foreach (var trad in trads) { if (baseseq == intfeseqoffset / 100) { var clippedFEseq = intfeseqoffset.ToString(CultureInfo.InvariantCulture); if (clippedFEseq.Length < 1 || clippedFEseq.Length > 6) { Status.Text = @"Updated F E Sequence not a valid length!. Sorry."; return; } switch (clippedFEseq.Length) { case 1: trad.FEseq = "00000" + clippedFEseq; break; case 2: trad.FEseq = "0000" + clippedFEseq; break; case 3: trad.FEseq = "000" + clippedFEseq; break; case 4: trad.FEseq = "00" + clippedFEseq; break; case 5: trad.FEseq = "0" + clippedFEseq; break; case 6: trad.FEseq = clippedFEseq; break; } } else { var clippedFEseq = intfeseqoffset == 0 ? 0.ToString(CultureInfo.InvariantCulture) : ((baseseq * 100) + intfeseqoffset).ToString(CultureInfo.InvariantCulture); switch (clippedFEseq.Length) { case 1: trad.FEseq = "00000" + clippedFEseq; break; case 2: trad.FEseq = "0000" + clippedFEseq; break; case 3: trad.FEseq = "000" + clippedFEseq; break; case 4: trad.FEseq = "00" + clippedFEseq; break; case 5: trad.FEseq = "0" + clippedFEseq; break; case 6: trad.FEseq = clippedFEseq; break; } } trad.Zhuyin = zhuyin; trad.Traditional = traditional; trad.English = english; //trad.NumPinyin = numpinyin; //trad.CritPinyin = critpinyin; //trad.Simplified = simplified; //trad.Cji = cji; d3K.SubmitChanges(); } } gridOneMain.Rows.Clear(); using (var d3K = new Dictionary3000DataContext(Settings.Default.ChineseStudyConnection)) { var trads = from q in d3K._3000_Characters where q.Traditional.Contains(txtMainCharacter.Text) orderby q.FEseq select q; foreach (var trad in trads) { var fePrefix = txtFEsequence.Text; var feFull = trad.FEseq.ToString(CultureInfo.InvariantCulture); var fePrefixLength = fePrefix.Length; if (!chkByPass.Checked && trad.FEseq != "0" && ((feFull.Substring(0, fePrefixLength) != fePrefix) || (feFull.Length != fePrefixLength + 2))) { continue; } object[] row = { trad.ID.ToString(CultureInfo.InvariantCulture), trad.FEseq, trad.Zhuyin, trad.Traditional, trad.English, trad.NumPinyin,trad.CritPinyin,trad.Simplified, trad.Cji }; gridOneMain.Rows.Add(row); } } }