大家好,我想用 C# 从 MySQL 中检索 LONGBLOB,没有数据类型大小,但只有数据类型 longblob。我可以保存在 mysql 中使用 longblob,但我可以再次检索它。
我在其中创建了一个名为“dataalis”的表,
CREATE TABLE `Wajah`.`dataalis` (
`No` int(10) unsigned NOT NULL auto_increment,
`Nama` varchar(45) default NULL,
`Keterangan` varchar(600) default NULL,
`Gambar` longblob,
PRIMARY KEY (`No`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
和
nama = namatxt.Text;
keterangan = keterangantxt.Text;
db = new DBConnect();
FileStream fs = new FileStream(location, FileMode.Open, FileAccess.Read);
int fileLength = (int)fs.Length;
byte[] rawdata = new byte[fileLength];
fs.Read(rawdata, 0, (int)fileLength);
MySqlCommand cmd = new MySqlCommand();
String sql = "insert into dataalis (Nama,Keterangan,Gambar) values(@Nama,@Keterangan,@Gambar)";
cmd.Connection = db.getConnection();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@Nama", nama);
cmd.Parameters.AddWithValue("@Keterangan", keterangan);
cmd.Parameters.AddWithValue("@Gambar", rawdata);
int result = cmd.ExecuteNonQuery();
fs.Close();
MessageBox.Show("Data Tersimpan","Peringatan");
将图像保存到 mysql
我尝试使用此代码检索 longblob 图像
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = db.getConnection();
cmd.CommandText = "select * from datamulut";
data = cmd.ExecuteReader();
while (data.Read())
{
int fileSize = data.GetInt32(data.GetOrdinal("size"));
string name = data.GetString(data.GetOrdinal("Keterangan"));
byte[] rawData = new byte[fileSize];
data.GetBytes(data.GetOrdinal("Gambar"), 0, rawData, 0, fileSize);
MemoryStream ms = new MemoryStream(rawData);
images.Add(Image.FromStream(ms));
gambar1.Image = images[0];
hasil1txt.Text = (name);
}
data.Close();
在该代码中,我不使用文件大小数据仅 longblob。如何在没有 filezie 的情况下仅检索 longblob 数据的图像?