Sql Server中有Image类型字段,用下面方法插入可以成功//读取文件二进制流
FileStream fs = new FileStream(openFileDialog1.FileName.ToString(), FileMode.OpenOrCreate, FileAccess.Read);byte[] FContent = new byte[fs.Length];
fs.Read(FContent, 0, Convert.ToInt32(fs.Length));
fs.Close();SqlCommand cmd = new SqlCommand("insert into test values @FContent)", conn);
cmd.Parameters.Add("@FContent", SqlDbType.Image, (int)FContent.Length).Value = FContent;但是用下面方法就失败,只是插入System.Byte[],为什么?我就想用下面这种方法实现。SqlCommand cmd = new SqlCommand("insert into test(FContent) values('"+ FContent +"')");

解决方案 »

  1.   

    FileStream fs = new FileStream(openFileDialog1.FileName.ToString(), FileMode.OpenOrCreate, FileAccess.Read);
    StreamReader reader=new StreamReader(fs);
    string FContent =reader.ReadToEnd();
    fs.Close();
    SqlCommand cmd = new SqlCommand("insert into test(FContent) values('"+ FContent +"')",conn);
      

  2.   

    谢谢ericzhangbo1982111的回答
    用您的方法 我试了一下 
    比如我插入一个文本文件,内容是“试验一下”
    读出来后是“试验一下.Byte[]”
    为什么呢?
    怎么修改?
    下面是读的程序FileInfo fi = new System.IO.FileInfo(fileName);
    FileStream fs = fi.OpenWrite();
    fs.Write(FContent, 0, FContent.Length);
    fs.Close();
    System.Diagnostics.Process.Start(fileName);