sql >> データベース >  >> RDS >> Mysql

LoadAsyncとMemoryStreamを使用して、データベースから画像ボックスに画像をロードしたい

    バイトをイメージにロードしないでください。これにより、達成しようとしている目的が無効になります...(これは、イメージを一時ファイルに入れるためのクイックアンドダーティです...ここでの追加の考慮事項はたくさんありますが、特に、完了時に一時ファイルを削除することです)

    byte[] byteBLOBData = (byte[])ds.Tables["magazine_images"].Rows[c - 1]["image"];
    string tempImageFileName = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".jpg");
    using( FileStream fileStream = new FileStream(tempImageFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite) ) {
        using( BinaryWriter writer = new BinaryWriter(fileStream) ) {
            writer.Write(byteBLOBData);
        }
    }
    
    pictureBox1.LoadCompleted += LoadCompleted;
    pictureBox1.WaitOnLoad = false;
    pictureBox1.LoadAsync(tempImageFileName);
    

    ...

    private static void LoadCompleted( object sender, AsyncCompletedEventArgs e ) {
        if( e.Error != null ) {
            // will get this if there's an error loading the file
        } if( e.Cancelled ) {
            // would get this if you have code that calls pictureBox1.CancelAsync()
        } else {
            // picture was loaded successfully
        }
    }
    

    LoadProgressChangedも参照してください イベント




    1. 2つのフィールドでグループ化された未完了の呼び出しの数を取得するクエリを作成します

    2. AFTER LOGON(Oracle)は、拡張子が付けられたPostgreSQLでトリガーされます– login_hook

    3. MySQLポイントタイプの座標を取得する

    4. Mysqlイベント実行開始時間