写入msql数据库中的内容有冒号,如何查询出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写入msql数据库中的内容有冒号,如何查询出来相关的知识,希望对你有一定的参考价值。

参考技术A select * from table where column like '%、%' 参考技术B 能转义吗

如何将一个流的内容写入.net 中的另一个流?

【中文标题】如何将一个流的内容写入.net 中的另一个流?【英文标题】:How to write the content of one stream into another stream in .net? 【发布时间】:2010-09-12 20:37:43 【问题描述】:

我经常遇到一个问题,我有一个充满数据的流,并且想将它的所有内容写入另一个流。

所有代码示例都使用字节数组形式的缓冲区。

有没有更优雅的方法?

如果不是,缓冲区的理想大小是多少。哪些因素构成了这个值?

【问题讨论】:

【参考方案1】:

关于理想的缓冲区大小:

"使用 Read 方法时,使用与流的内部缓冲区大小相同的缓冲区更有效,其中内部缓冲区设置为您想要的块大小,并且始终读取小于块大小。如果在构造流时未指定内部缓冲区的大小,则其默认大小为 4 KB(4096 字节)。"

任何读流的过程都会用到Read(char buffer[], int index, count),这就是这句话所指的方法。

http://msdn.microsoft.com/en-us/library/9kstw824.aspx(在“备注”下)。

【讨论】:

【参考方案2】:

Read data in FileStream into a generic Stream

可能会有一些进入的方向

【讨论】:

【参考方案3】:

我不确定您是否可以在 .NET 中直接将一个流通过管道传输到另一个流,但这是一种使用中间字节缓冲区的方法。缓冲区的大小是任意的。最有效的大小主要取决于您要传输的数据量。

static void CopyStream(Stream input, Stream output)
    byte[] buffer = new byte[0x1000];
    int read;
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 
        output.Write(buffer, 0, read);

【讨论】:

您可以在 C# 3.0 中将其实现为扩展方法,并将其作为静态 void CopyTo(this Stream input, Stream output)...【参考方案4】:

我不知道比使用缓冲区更优雅的方式。

但是缓冲区的大小会有所不同。还记得关于 Vista 的文件复制的问题吗?原因是(基本上)改变了缓冲区大小。 this blogpost 中解释了这些更改。您可以从该帖子中了解主要因素。但是,这仅适用于文件复制。在应用程序中,您可能会执行大量内存副本,因此在这种情况下,4KB 可能是最佳缓冲区大小,as recommended by the .NET documentation。

【讨论】:

【参考方案5】:

在.NET 4.0 中,我们终于得到了Stream.CopyTo 方法!耶!

【讨论】:

我反编译成 Stream.CopyTo 方法,它调用“this.InternalCopyTo(destination, 81920);”整数值是缓冲区大小。与大多数缓冲技术似乎采用的标准 4k 相比,这似乎是一个疯狂的缓冲区大小。有人可以对此发表评论吗? 看起来这个数字只是想避免使用大对象堆,它会在那个数量的北边踢。 81920 几乎看起来像一个错字,但我怀疑@JamesWorld 是对的,他们选择了一个足够小的值来避免 LOH,但又足够大以对长流有效并且对短流。如果你确实有一个短流,那么你可以只使用接受缓冲区大小的 CopyTo() 的重载。【参考方案6】:

BufferedStream.CopyTo(流)

【讨论】:

【参考方案7】:

正如一些人所建议的那样,CopyToCopyToAsync 应该可以完成这项工作。这是一个 TCP 服务器的示例,它在端口 30303 上侦听外部连接,并使用本地端口 8085(用 .NET 5 编写)对它们进行管道传输。大多数流应该是一样的,只是要注意它们是双向还是单向。

using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;

namespace ConsoleApp1

    class Program
    
        static async Task Main(string[] args)
        
            var externalConnectionListener = new TcpListener(IPAddress.Any, 30303);
            externalConnectionListener.Start();

            while (true)
            
                var externalConnection = await externalConnectionListener.AcceptTcpClientAsync().ConfigureAwait(false);

                _ = Task.Factory.StartNew(async () =>
                  
                      using NetworkStream externalConnectionStream = externalConnection.GetStream();
                      using TcpClient internalConnection = new TcpClient("127.0.0.1", 8085);
                      using NetworkStream internalConnectionStream = internalConnection.GetStream();

                      await Task.WhenAny(
                                externalConnectionStream.CopyToAsync(internalConnectionStream),
                                internalConnectionStream.CopyToAsync(externalConnectionStream)).ConfigureAwait(false);

                  );

            
        
    

【讨论】:

以上是关于写入msql数据库中的内容有冒号,如何查询出来的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL表里面单元格里面都有内容,且都有冒号,我如何能把不同单元格里面的冒号之前的文字复制出来。

excel表格,表格中穿插有格式为:"手机:XXXXXXXXXX“,如何把冒号后面的数字单独提取出来,其他内容比如文

jsp页面显示数据库中的文本数据 包含空格汉字数字等 显示出来的老是乱码

将一个文件中的内容读出来并写入数据库表中,用proc语言

oracle 查询每天写入的数据

sql中如何查询刚写入数据库的东西