Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#将数据流式传输到SQL Server,处理连接错误_C#_Sql Server_Streaming - Fatal编程技术网

c#将数据流式传输到SQL Server,处理连接错误

c#将数据流式传输到SQL Server,处理连接错误,c#,sql-server,streaming,C#,Sql Server,Streaming,问题: 有一个巨大的blob从服务器流到客户端应用程序。 如果在将流写入数据库时出现异常(连接丢失),则到目前为止接收到的所有数据都将丢失,数据库字段随后将保持为空 问题:是否有办法更改该行为,以便数据库保存所有迄今为止接收到的数据并仅存储这些数据,即使存在异常?我想稍后继续下载 重要提示:我不想在内存中缓冲所有接收到的数据,我只想直接将接收到的数据写入数据库,以避免内存峰值。为了实现这一点,我正在将HttpClient与HttpCompletionOption.ResponseHeadersR

问题: 有一个巨大的blob从服务器流到客户端应用程序。 如果在将流写入数据库时出现异常(连接丢失),则到目前为止接收到的所有数据都将丢失,数据库字段随后将保持为空

问题:是否有办法更改该行为,以便数据库保存所有迄今为止接收到的数据并仅存储这些数据,即使存在异常?我想稍后继续下载

重要提示:我不想在内存中缓冲所有接收到的数据,我只想直接将接收到的数据写入数据库,以避免内存峰值。为了实现这一点,我正在将HttpClient与HttpCompletionOption.ResponseHeadersRead一起使用。如果没有连接问题,则一切正常

到目前为止的解决方法:我可以先将接收到的数据写入临时文件,然后在出现连接问题后,将接收到的数据存储到数据库中。这会奏效,但有更好的方法吗

当前如何写入流:

string connectionString=“连接字符串”;
使用(SqlConnection conn=newsqlconnection(connectionString)){
conn.Open();
使用(SqlCommand cmd=newsqlcommand(“updatetablex set Data=@Data,其中id=@id”)){
cmd.Parameters.AddWithValue(“@Id”,ParameterDirection.Input);
cmd.Parameters.AddWithValue(“@Data”,streamToStore);
cmd.Connection=conn;
int rows=cmd.ExecuteNonQuery();
}

}
您目前是如何将流写入数据库的?刚刚用一些源代码更新了这个问题。仅使用基本的.net sql类。您当前如何将流写入数据库?仅使用一些源代码更新了问题。仅使用基本的.NETSQL类。