gpt4 book ai didi

.net - 如何从/向 SQL Server BLOB 字段传输数据?

转载 作者:行者123 更新时间:2023-12-04 00:23:29 25 4
gpt4 key购买 nike

For the background to this question, see “How to I serialize a large graph of .NET object into a SQL Server BLOB without creating a large buffer?” that now has a large bounty on it.



我希望能够使用 Stream对象从 SQL Server 行中的 BLOB 字段读取/写入数据,而无需放置 全部 将数据放入临时缓冲区。

如果能做到以上...

由于 Streams 类有很多 CanXXX()方法,并非所有流都可以被所有方法使用接受流输入/输出。

那么流必须具备多大的能力才能与 ADO.NET 一起使用向/从 SQL Server 发送数据时?

我正在寻找一个标准的 Stream,我可以将它传递给其他 API。

此外,到目前为止的两个答案仅涵盖从 SqlServer 获取数据,而不是 发送 数据到SqlServer。

最佳答案

以下是分块读取数据的示例:

    using (var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "select somebinary from mytable where id = 1";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
byte[] buffer = new byte[1024]; // Read chunks of 1KB
long bytesRead = 0;
long dataIndex = 0;
while ((bytesRead = reader.GetBytes(0, dataIndex, buffer, 0, buffer.Length)) > 0)
{
byte[] actual = new byte[bytesRead];
Array.Copy(buffer, 0, actual, 0, bytesRead);
// TODO: Do something here with the actual variable,
// for example write it to a stream
dataIndex += bytesRead;
}
}

}
}

关于.net - 如何从/向 SQL Server BLOB 字段传输数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101346/

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