void ShowVerses(String keyword) { try{ verseResult = VerseResult.GetVerseResult(keyword); if(verseResult.verseTable.Rows.Count<1) throw new NoVerseException(); startRow=0; RePaintBitmap(); UpdatePreview(); liveForm.updateBitmapAndRepaint(textBitmap); UpdateHistory(verseResult.GetTitle()); } catch(MultiBookException) { //MessageBox.Show("multi book"); } catch(NoBookException) { //MessageBox.Show("no book"); } catch(KeywordException) { //MessageBox.Show("keyword"); } catch(NoVerseException) { //MessageBox.Show("no verse"); } }
public static VerseResult GetVerseResult(String keyword) { string delimStr = " -::——"; char [] delimiter = delimStr.ToCharArray(); string [] split = null; split = keyword.Split(delimiter); String bookName=null; int chapter=INIT_VALUE,verseStart=INIT_VALUE,verseEnd=INIT_VALUE; int index=0; try{ while(split[index].Trim()=="") index++; bookName = split[index]; while(split[index].Trim()=="") index++; chapter = int.Parse(split[1]); while(split[index].Trim()=="") index++; verseStart = int.Parse(split[2]); while(split[index].Trim()=="") index++; verseEnd = int.Parse(split[3]); }catch(System.IndexOutOfRangeException) {} catch(FormatException) { throw new KeywordException(); } if(chapter==-1) chapter=1; if(verseStart==-1) { verseStart=1; verseEnd=9999; } if(verseEnd==-1) verseEnd=verseStart; else if(verseEnd==0) verseEnd=9999; VerseResult result = new VerseResult(); result.book = GetBookID(bookName); result.chapter = chapter; result.verseStart=verseStart; result.verseEnd=verseEnd; String sql = string.Format("select verseid,content from verse where version='{4}' and bookid={0} and chapterid={1} and verseid>={2} and verseid<={3}", result.book.id,chapter,verseStart,verseEnd,version); result.verseTable=DBUtil.GetDataTable(sql); return result; }