zoukankan      html  css  js  c++  java
  • c# mysql blob数据类型

    1.采用stream流形式写入:

        #region 数据流转换成blob类型数据写入数据库
            static public bool StreamToBlob(ref Stream stream, OdbcConnection conn, string sTable, string sBlobField, string sIDName, string sIDValue)
            {
                if (null == conn || stream == null || sTable == "" || sBlobField == "" || sIDName == "" || sIDValue == "")
                    throw new NullReferenceException();
    
                DataSet dataSet = null;
                OdbcDataAdapter adapter = null;
                byte[] buff = null;
                DataRow row = null;
                int iRtn = 0;
                string sSQL = String.Format("SELECT * FROM {0} WHERE {1} = '{2}'", sTable, sIDName, sIDValue);
    
                try
                {
                    adapter = new OdbcDataAdapter(sSQL, conn);
                    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                    dataSet = new DataSet(sTable);
                    OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
                    adapter.Fill(dataSet, sTable);
                    // read blob data from stream
                    // cause there is only one row, the index we need update is 0
                    int iCnt = dataSet.Tables[0].Rows.Count;
                    row = dataSet.Tables[sTable].Rows[0];
                    buff = new byte[stream.Length];
                    stream.Seek(0, SeekOrigin.Begin);
                    stream.Read(buff, 0, System.Convert.ToInt32(stream.Length));
                    // update table's blob field
                    row[sBlobField] = buff;
                    iRtn = adapter.Update(dataSet, sTable);
                }
                catch (Exception ee)
                {
                    string err = ee.Message.ToString();
                    MessageBox.Show(ee.Message + ee.StackTrace);
                    buff = null;
                }
                finally
                {
                    if (dataSet != null)
                        dataSet.Dispose();
                    if (adapter != null)
                        adapter.Dispose();
                }
    
                //stream.Close();
                // there is an exception happened or update false
                if (buff == null || iRtn == 0)
                    return false;
                return true;
            }
    
            #endregion
    

     2.sql语句采用parameter

        string image = BlobToString(DBConnection.m_DataBaseConn, "imagetable", "ImageData", "ImageID", readerIl[0].ToString());
           if (image == null) { readerIl2.Close(); continue; }
           byte[] bytes = strhelper.str2arr(image);
           cmmandIr.CommandText = "update imagetable set imagedata = ? where imageid = '" + readerIl[0].ToString() + "'";
           commandIr.Parameters.Add("@a", bytes);
           commandIr.ExecuteNonQuery();
    
  • 相关阅读:
    大数据Hadoop-2
    大数据Hadoop-1
    Consistent Hashing
    分支的创建、删除、切换、合并以及冲突解决
    windows WEB 高可用/可伸缩
    Oracle行转列、列转行的Sql语句总结
    从零到百亿互联网金融架构发展史---架构变迁
    WebJars
    springcloud(五):熔断监控Hystrix Dashboard和Turbine
    SpringBoot编写自定义的starter 专题
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/9020597.html
Copyright © 2011-2022 走看看