gpt4 book ai didi

c# - 在 C# 中从 MYSQL 中读取 Mediumblob 数据类型

转载 作者:可可西里 更新时间:2023-11-01 08:20:40 25 4
gpt4 key购买 nike

我在 MYSQL Server 中有一个数据库。有一个表存储图像及其信息。该图像的数据类型是 Mediumblob。我需要读取它并将其存储在一个字节 [] 中,但我不知道该怎么做。任何人都有针对这种情况的解决方案吗?非常感谢 :)

问候。

最佳答案

查看 this article on MySQL website 中的示例,您应该能够像这样处理数据:

存储图像:

MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;

// initialize "conn" and "cmd" here

FileStream fs = new FileStream(@"c:\image.png", FileMode.Open, FileAccess.Read);
FileSize = fs.Length;

byte[] rawData = new byte[FileSize];
fs.Read(rawData, 0, FileSize);
fs.Close();

conn.Open();

string SQL = "INSERT INTO file VALUES(NULL, @FileSize, @File)";

cmd.Connection = conn;
cmd.CommandText = SQL;
cmd.Parameters.AddWithValue("@FileSize", FileSize);
cmd.Parameters.AddWithValue("@File", rawData);

cmd.ExecuteNonQuery();

conn.Close();

阅读它:

MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;
MySql.Data.MySqlClient.MySqlDataReader myData;

// initialize connection and query here...

myData = cmd.ExecuteReader();

if (!myData.HasRows)
throw new Exception("There are no BLOBs to save");

myData.Read();

int FileSize = myData.GetUInt32(myData.GetOrdinal("file_size"));
byte[] rawData = new byte[FileSize];

myData.GetBytes(myData.GetOrdinal("file"), 0, rawData, 0, (int)FileSize);

FileStream fs = new FileStream(@"C:\newfile.png", FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(rawData, 0, (int)FileSize);
fs.Close();

此代码展示了如何将图像保存到文件中(并假设它以 PNG 格式存储),但您可以随心所欲地处理数据...

关于c# - 在 C# 中从 MYSQL 中读取 Mediumblob 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com