byte[] imagebytes = null;
        SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Studen;Data Source=.");
        con.Open();
        SqlCommand com = new SqlCommand("select top 1(excel) from Excel1", con);
        SqlDataReader dr = com.ExecuteReader();
        while (dr.Read())
        {
            imagebytes = (byte[])dr.GetValue(0);
        }
        dr.Close();
        com.Clone();
        string content;
        content = System.Text.Encoding.Default.GetString(imagebytes);
        StreamWriter sr;
        if (File.Exists("F://123.xls")) //如果文件存在,则创建File.AppendText对象
        {
            //sr = File.AppendText(FILE_NAME);
        }
        else   //如果文件不存在,则创建File.CreateText对象
        {
            sr = File.CreateText("F://123.xls");
            sr.WriteLine(content);
            sr.Close();
        }

解决方案 »

  1.   

    SqlConnection con貌似没有关闭Close
      

  2.   

    com.Clone();
    不知道你克隆这个对象干什么的。
      

  3.   


    con.Open();打开的 我读出来的是一个System.Byte[]
      

  4.   

    分两步,第一,看你的数据读出来没,文件压缩成二进制存入数据,读出来的还应该不变。
            第二,在拿数组,去写入文件。先保证第一步没有错con.Close();
      

  5.   


    数组已经读出来了,在imagebytes 里面  保存到excel文件,打开excel时候就能看到“System.Byte[]”
      

  6.   

    哥哥呀,这个com.Clone()这个函数是克隆对象,SqlCommand com1=(SqlCommand )com.Clone();这个函数,这么用的
    com.Close()是关闭
      

  7.   

    dr.Close();
      com.Clone();
      string content;

     dr.Close();
    com.Close();
    con.Close();
      

  8.   


    我个人感觉跟这个没什么关系 
    string content;
       content = System.Text.Encoding.Default.GetString(imagebytes);
    应该和这条语句有关吧  我要保存成excel文件 
      

  9.   

    StreamWriter sw = File.AppendText(“F://123.xsl"); 
    sw.WriteLine("写汉字,看看能不能写出来"); 
    sw.Flush(); 
    sw.Close(); 
      

  10.   


    content = System.Text.Encoding.Default.GetString(imagebytes);
     content读出来之后就是“System.Byte[]”
      

  11.   

    如果你的Excel文件里面只用一个格子的数据,你上面的写法没问题,如果是N个格子的数据,这么搞当然是错的string contents = System.Text.Encoding.Default.GetString(imagebytes);
    这个将所有的都写在一起,你可以写到txt文件中,看看效果
      

  12.   

    System.Text.Encoding.UTF8.GetString(bytes);
      

  13.   

    数据库读出来 为啥要强制转换为 byte[]
    既然要保存到文本 直接string[]不就得了