日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

c# mysql blob数据类型

發布時間:2024/5/24 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 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();

總結

以上是生活随笔為你收集整理的c# mysql blob数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。