日期:2014-05-17  浏览次数:20764 次

ado.net往数据库里面写入超长字符串的问题
往一个nvarchar(max)的字段写入了一个50K的文本,结果自动截断,导致写入不完整,请问该如何解决!
字符串 截断

------解决方案--------------------
  判断字节数目,二次重发。

  PS:你的头像典型的屌丝头
------解决方案--------------------
引用:
Quote: 引用:

往一个nvarchar(max)的字段写入了一个50K的文本,结果自动截断,导致写入不完整,请问该如何解决!

为什么数据库里没有提示呢?

这么大??

换成text或者二进制流存储啥
------解决方案--------------------
你在写入的时候有没有设置数据库对应参数的长度?
------解决方案--------------------
目测你代码问题 与数据库无关 
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;

namespace Demo50K
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = new string('a', 1000000);
            using (SqlConnection connection = new SqlConnection("Data Source=localhost;Initial Catalog=demo; User ID=sa;Password=sa;"))
            {
                connection.Open();
                SqlCommand cmd = new SqlCommand("insert into tb (txt) values (@txt)", connection);
                cmd.Parameters.Add("@txt", s);
                cmd.ExecuteNonQuery();

                //create xk document
                StreamWriter writer = new StreamWriter("out.txt", false, Encoding.Default);