string xinxi;
SqlConnection thisConnection=new SqlConnection(@"server=SWSERIAPDBTEST1;User ID=soxtool;Password=swsoxtool;database=soxtool");
thisConnection.Open();
SqlCommand mycmd=thisConnection.CreateCommand();
mycmd.CommandText="select convert(varchar,字段1) from table where aa='aaa'";
mycmd.CommandType=CommandType.Text;
xinxi=Convert.ToString(mycmd.ExecuteScalar());但是这样读取出来只有前面几个字符,不知道怎么回事?在查询分析器里可以读取到字段1的数据,可以看到里面数据是齐全的。

解决方案 »

  1.   

    谢谢。
    ps:字段1的类型是text类型。
      

  2.   

    select convert(nvarchar(max)  ,字段1) from table where aa= 'aaa '"; 
      

  3.   

    取出内容用ExecuteReader();不是mycmd.ExecuteScalar(); SqlDataReader Dr = MyCom.ExecuteReader();
                    Dr.Read();
                    string aaa= Dr["字段"].ToString();
      

  4.   

    不行。
    直接读取不转换可以,但是存储在string里转交给webservice的时候出错。看来不是读取问题。
      

  5.   

    ......
    从SQL里读出TEXT类型的数据,再赋值给webservice一直都是这样做的,没出过问题啊你再检查看看你的程序是不是哪出了问题
      

  6.   

    heqi915 说的可以读出来。但这样也行:
    "select 字段1 from table where aa= 'aaa '"; 
    结果能在textBox1中显示,但我要存储在string里做为一个参数。结果提示如下:不允许从数据类型 text 到 nvarchar 的隐性转换。请使用 CONVERT 函数来运行此查询。转换后又只能显示15个字,真是奇怪。
      

  7.   

    select cast(字段1 as varchar(8000)) from
    这样可以正常读取到8000个字节并且提交webservice,其它方式读取没问题,但提交就出错,可能拾webservice的问题吧。
    谢谢各位了。