C# 如何将字节数组插入数据库中的blob单元?

C# 如何将字节数组插入数据库中的blob单元?,c#,sql,odbc,C#,Sql,Odbc,我使用此代码编辑数据库中的数据。当像int或string这样的数据运行时,一切都正常,但我不明白如何将字节数组插入到具有BLOB数据类型的单元格中。 3天来谷歌、youtube已经被风暴席卷,但我找不到解决办法 OdbcTransaction transaction = null; OdbcCommand command = new OdbcCommand(); transaction = connection.BeginTran

我使用此代码编辑数据库中的数据。当像int或string这样的数据运行时,一切都正常,但我不明白如何将字节数组插入到具有BLOB数据类型的单元格中。 3天来谷歌、youtube已经被风暴席卷,但我找不到解决办法

OdbcTransaction transaction = null;
                OdbcCommand command = new OdbcCommand();

                transaction = connection.BeginTransaction();

                command.Connection = connection;
                command.Transaction = transaction;
                
                
                command.CommandText = "UPDATE tb_vs SET te_file=" + bytes + " WHERE te_comp LIKE '" + ParStr + "'";
                //command = new OdbcCommand("UPDATE tb_vs SET te_file=" + bytes + " WHERE te_comp LIKE '" + ParStr + "'", connection);
                //command.Parameters.Add("@byte", OdbcType.Blob).Value = bytes;
                

                command.ExecuteReader();
                transaction.Commit();

您需要将数组转换为字符串。因为Oracle不识别C#数组

这段代码提示我

using (var transaction = connection.BeginTransaction())
using (var command = new OdbcCommand())

command.Connection = connection;
command.Transaction = transaction;

command.CommandText =
    "UPDATE tb_vs SET te_file = ? WHERE te_comp LIKE ?";

command.Parameters.Add("@p1", OdbcType.Binary).Value = bytes;
command.Parameters.Add("@p2", OdbcType.NVarChar).Value = ParStr;

int rowsAffected = command.ExecuteNonQuery();
transaction.Commit();
但它给出了一个新的错误:

System.Data.Odbc.OdbcException:“错误[HY000][Microsoft][Odbc TransBase驱动程序][TransBase]一般错误。 TransBase执行错误报告:
参数0的类型不匹配(已获取binchar(*),需要blob)

学习使用参数化查询。由于某些原因,这不适用于我的数据库。只能通过OdbcTransaction。向数据库发送数据时,源和目标双方都必须知道数据的类型。数据库不知道数组中的数据。或者说,他不知道数组。因此,您必须首先将数组中的数据转换为字符串,然后将其另存为数据库中的字符串。否则,您必须将数组中的每个信息分别存储在不同的数据库单元中。请使用其他解释,而不是“您需要将数组转换为字符串”“。我需要将数组转换为blob类型,而不是字符串。在字符串中我可以,但如何在blob中?在数据库单元格中,只存储一个数据。而数组本身包含许多包含信息的单元格。blob数据字符串总共只是一条数据。例如,已转换为二进制形式的照片。包含照片信息的长二进制字符串。我认为您理解blob数据的概念。现在需要使用循环将数组转换为二进制字符串。将数组中的信息分解为单个字符串。要标识数组中每个数据单元的开始和结束,必须定义一个特定的二进制符号,并在每次迭代中转换的单元之间放置一个循环。这样,您将有一个长的二进制字符串,可以存储在数据库单元中。但调用时必须再次将其转换为数组。在我看来,最好的方法是将数组中的信息逐个存储在数据库的单独单元中