2017-01-20 21 views
0

彼のコードにcatch(Exception)という句を持っていたthis guyを助けたかったのです。悪い習慣。特定の例外を捕捉する必要があります。そうです、彼らは何ですか?DataSet.Fillでエラーを処理するにはどうすればよいですか?

彼が呼び出した唯一の方法については、OdbcAdapter.Fill(DataSet)のドキュメントを参照して、入出力リストを見つけました。通常はすべての例外がリストされています。記載されていない。それは何を投げたことはありますか?

次に、Fillが例外をスローしないことを示唆している、this documentationが見つかりました。それらを嚥下し、代わりにeventsを発生させます。

しかし、私はthisを見つけました。

およびthis

OdbcDataAdapter.Fill(DataSet)は例外をスローするかどうかを指定します。例外は何ですか?それは出来事を起こすかどうか?

答えて

0

次のコード例は、DataAdapterのFillErrorイベントに対するイベントハンドラを追加します。 FillErrorイベントコードでは、精度に影響を及ぼす可能性があるかどうかを判断し、例外に応答する機会を提供します。

adapter.FillError += new FillErrorEventHandler(FillError); 
DataSet dataSet = new DataSet(); 
adapter.Fill(dataSet, "ThisTable"); 
protected static void FillError(object sender, FillErrorEventArgs args) 
{ 
    if (args.Errors.GetType() == typeof(System.OverflowException)) 
      { 
       // Code to handle precision loss. 
       //Add a row to table using the values from the first two    
       columns. 
       DataRow myRow = args.DataTable.Rows.Add(new object[] 
       {args.Values[0], args.Values[1], DBNull.Value}); 
       //Set the RowError containing the value for the third column. 
       args.RowError = 
       "OverflowException Encountered. Value from data source: " + 
       args.Values[2]; 
       args.Continue = true; 
      } 
    } 

参考:https://msdn.microsoft.com/en-us/library/6d1wk41s(v=vs.110).aspx

関連する問題