gpt4 book ai didi

C# MySQL Blob 字段 - 无法将存储在 blob 中的 zip 文件复制到另一个表

转载 作者:行者123 更新时间:2023-11-29 05:35:01 29 4
gpt4 key购买 nike

我有一个 zip 文件存储在第三方应用程序的表中,我无法控制。不过,我确实可以访问 MySQL 数据库。

我想做的是执行一个 SELECT 语句来检索一个 blob 字段并将该记录复制到另一个表中。但在另一边,我确实看到了远端的 blob 字段,但它不是一个 zip 文件,它是一个文本文件,上面写着 System.Byte[] 就是这样 - 任何人对导致这种情况的原因以及如何解决的任何想法修好了吗?

下面是我的内容 - 非常感谢您的帮助:)

OdbcCommand broadcastSelect = new OdbcCommand("select * from exchange where status='1' and type='UPDATE'", cloud);
OdbcDataReader DbReader = Select.ExecuteReader();
int fCount = DbReader.FieldCount;
String type = "";
String filename = "";
byte[] data = null;
int status = 0;

while (DbReader.Read())
{
if (DbReader.IsDBNull(0))
{
type = "BLANK";
}
else
{
type = (string)DbReader[0];
}
if (DbReader.IsDBNull(1))
{
filename = "BLANK";
}
else
{
filename = (string)DbReader[1];
}
if (DbReader.IsDBNull(2))
{
data = new byte[1];
}
else
{
data = (byte[])DbReader[2];
}
if (DbReader.IsDBNull(3))
{
status = 0;
}
else
{
status = (int)DbReader[3];
}

OdbcCommand Copy = new OdbcCommand("INSERT INTO exchange(type,filename,data,status) VALUES('" + type + "','" + filename + "','"
+ data + "','" + status + "')", local);
Copy.ExecuteNonQuery();

}

最佳答案

使用 sql 参数插入二进制数据。

OdbcParameter param = new OdbcParameter("@file", SqlDbType.Binary); 

---更新我希望下面给出的代码对您有所帮助。

 OdbcCommand broadcastSelect = new OdbcCommand("select * from exchange where status='1' and type='UPDATE'", cloud);
OdbcDataReader DbReader = Select.ExecuteReader();
int fCount = DbReader.FieldCount;
String type = "";
String filename = "";
byte[] data = null;
int status = 0;
OdbcParameter param = null;
while (DbReader.Read())
{
if (DbReader.IsDBNull(0))
{
type = "BLANK";
}
else
{
type = (string)DbReader[0];
}
if (DbReader.IsDBNull(1))
{
filename = "BLANK";
}
else
{
filename = (string)DbReader[1];
}
if (DbReader.IsDBNull(2))
{
param = new OdbcParameter("@file", SqlDbType.Binary);
param.DbType = DbType.Binary;
param.Value = new byte[1];
command.Parameters.Add(param);
}
else
{
param = new OdbcParameter("@file", SqlDbType.Binary);
param.DbType = DbType.Binary;
param.Value = (byte[])dbReader[2];
param.Size = ((byte[])dbReader[2]).Length;
command.Parameters.Add(param);
}
if (DbReader.IsDBNull(3))
{
status = 0;
}
else
{
status = (int)DbReader[3];
}

OdbcCommand Copy = new OdbcCommand("INSERT INTO exchange(type,filename,data,status) VALUES('" + type + "','" + filename + "',@file,'" + status + "')", local);
Copy.ExecuteNonQuery();

关于C# MySQL Blob 字段 - 无法将存储在 blob 中的 zip 文件复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470160/

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