0

foreach ループを実行した後。クエリ結果が null であるため、2 番目の項目で NullReferenceException を取得しています。しかし、同じクエリで使用するアイテムがさらにあり、richTextBox1 で結果を取得します。したがって、null の結果がある場合は foreach ループを続行できます。

foreach (string Items in listBox4.Items)
{
    using (OracleCommand crtCommand = new OracleCommand("select REGEXP_REPLACE(dbms_metadata.get_ddl('TABLE','" + Items + "'),('" + txtSrcUserID.Text + "...'),'', 1, 0, 'i') from dual", conn1))                           
    {
        richTextBox1.AppendText(Environment.NewLine);
        richTextBox1.AppendText(crtCommand.ExecuteScalar().ToString() + ";");
        richTextBox1.AppendText(Environment.NewLine);
    }                                                      
}
4

2 に答える 2

0

に変更crtCommand.ExecuteScalar().ToString()(crtCommand.ExecuteScalar() ?? string.Empty).ToString()ます。これは論理的に次と同等です。

  object dbResult = crtCommand.ExecuteScalar();
  if(dbResult == null) 
  {
     richTextBox1.AppendText(";");
  }
  else
  {
     richTextBox1.AppendText(dbResult.ToString() + ";");
  }

null の結果を空の文字列として扱うのではなく、完全に無視したい場合は、@SimonWhitehead のコードを使用してください

于 2013-07-18T02:41:00.683 に答える