0

画像を読み込んでデータベースに保存するフォームを作成しました。

ユーザーが画像を選択しない場合は、値NULLをデータベースに保存したいと思います。

私はこのコードを試しました:

drow[1] = string.IsNullOrEmpty(imgData.ToString()) ? DBNull.Value : (object)imgData;

しかし、それは私にこのエラーを与えます:

オブジェクト参照がオブジェクト インスタンスに設定されていません

これは私が画像をロードするために使用したコードです:

private void simpleButton5_Click_1(object sender, EventArgs e)
{
    try
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            picture.ImageLocation = openFileDialog1.FileName;

            imgData = File.ReadAllBytes(openFileDialog1.FileName);
        }
    }
    catch (Exception ex)
    {
        // Could not load the image - probably related to Windows file system permissions.
        XtraMessageBox.Show(String.Format("Cannot display the image.\n You may not have permission to read the file, or it may be corrupt.\n\nReported error: {0}", ex.Message));
    }
}
4

2 に答える 2

2

あなたはその行でいくつかの不必要なことをしています。使用する必要はなく、 ifがToString()取得されるため、実際には有害です。値を直接と比較するだけです。NullReferenceExceptionimgData nullnull

これはより良いだけでなく、それに影響されませんNullReferenceException

drow[1] = imgData == null ? DBNull.Value : (object)imgData;
于 2012-08-05T16:51:34.080 に答える
0

変数drowまたはimageDataのいずれかがnullです。配列の逆参照を実行したり、ToString()を呼び出したりするには、オブジェクトを参照する必要があります。デバッガーは、どの変数が原因であるかを表示できる必要があります。

于 2012-08-05T16:57:07.857 に答える