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 +"')");
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 +"')");
StreamReader reader=new StreamReader(fs);
string FContent =reader.ReadToEnd();
fs.Close();
SqlCommand cmd = new SqlCommand("insert into test(FContent) values('"+ FContent +"')",conn);
用您的方法 我试了一下
比如我插入一个文本文件,内容是“试验一下”
读出来后是“试验一下.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);