การ update blob ของ informix ด้วย c#

update blob จากข้อมูลที่เก็บอยู่ใน textfile

สร้างตารางทดสอบ

create table tbtest
(
    id        SERIAL  PRIMARY KEY,
    detail    text,
    timestamp DATETIME YEAR TO FRACTION(5) DEFAULT SYSDATE YEAR TO FRACTION(5) 
);

สร้างฟังก์ชันใน C# ใช้ในการ update

public static string UpdateBlob(string query, string filename)
{
    string connectionString = ConfigurationManager.AppSettings.Get("connectionString");

    query = cleanQuery(query);
    log.Debug(query);

    byte[] data = File.ReadAllBytes(filename);

    string result = "";
    using (var conn = new IfxConnection(connectionString))
    {
        conn.Open();

        IfxTransaction myTrans;
        // Start a local transaction
        myTrans = conn.BeginTransaction(IsolationLevel.ReadCommitted);

        using (IfxCommand command = new IfxCommand(query, conn))
        {
            command.Transaction = myTrans;
            command.Parameters.Add("@binaryValue", IfxType.Byte).Value = data;

            try
            {
                int res = command.ExecuteNonQuery();
                myTrans.Commit();
                result = "success";
                log.Info(result);
            }
            catch (Exception ex)
            {
                myTrans.Rollback();
                result = ex.Message;
                log.Error(ex.Message);
            }
        }
    }

    return result;
}

ทดลองเรียกใช้ฟังก์ชัน

string filename = "xxx.txt";
string query = string.Format("UPDATE tbtest SET detail = ? where id = 1;");
UpdateBlob(query, filename);