当前位置:编程学习 > C#/ASP.NET >>

请高手解答 "无法将类型为“System.String”的对象强制转换为类型“System.Byte[]”。"

DataSearch l_DataSearch = new DataSearch();



            //ldt_data = l_DataSearch.Search_FillImage(s_yy.Text, e_yy.Text);
            ldt_data.Columns.Add("年");
            ldt_data.Columns.Add("月");
            ldt_data.Columns.Add("日");
            ldt_data.Columns.Add("时");
            ldt_data.Columns.Add("气压层次");
            ldt_data.Columns.Add("气象台名称");
            ldt_data.Columns.Add("气象预报区域");
            ldt_data.Columns.Add("填图类型");
            ldt_data.Columns.Add("填图员");
            ldt_data.Columns.Add("分析员");
            ldt_data.Columns.Add("Fimage");
for (int i = 1; i < 17; i++)
            {
                DataRow l_datarow = ldt_data.NewRow();
                l_datarow[0] = "2007";
                l_datarow[1] = "12";
                l_datarow[2] = i.ToString();
                l_datarow[3] = "12";
                l_datarow[4] = "5";
                l_datarow[5] = "a" + i.ToString();
                l_datarow[6] = "b" + i.ToString();
                l_datarow[7] = "c" + i.ToString();
                l_datarow[8] = "张三";
                l_datarow[9] = "李四";

                FileStream fs = new FileStream("E:\\pic_test\\"+i.ToString()+".JPG", FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);
                byte[] photo = br.ReadBytes((int)fs.Length);


                br.Close();
                fs.Close();
                l_datarow[10] = photo;
                ldt_data.Rows.Add(l_datarow);
            }
Response.BinaryWrite((byte[])ldt_pic.Rows[1][10]); --------------------编程问答-------------------- ToCharArray()? --------------------编程问答-------------------- 就是执行到"Response.BinaryWrite((byte[])ldt_pic.Rows[1][10]);"报错 --------------------编程问答-------------------- 如果是把System.String转换成System.Byte数组用来做流函数参数的话,可以用System.Encoding.UTF8.GetBytes(System.String)这个静态编码函数把string编码成byte[]用来IO读写,当然可以相反地把byte[]在用GetString(byte[])反编码成字符串,需要注意的是字符串的CultureInfo。Encoding命名空间下面有UTF7,UTF8,Unicode,UTF32等字符集。希望这能解决你的转换问题,有问题可以继续跟帖加以讨论。 --------------------编程问答-------------------- ldt_pic.Rows[1][10] 里面存的是一张图片. --------------------编程问答-------------------- 请高手解答 "无法将类型为“System.String”的对象强制转换为类型“System.Byte[]”。" 
你自己把标题写成这样,我当然以为是string了 --------------------编程问答-------------------- "无法将类型为“System.String”的对象强制转换为类型“System.Byte[]”"
这是运行时提示的错误信息,我也觉得奇怪, ldt_pic.Rows[1][10]里面明明存的是"System.Byte[]"数据,为什么会提示"无法将类型为“System.String”的对象强制转换为类型“System.Byte[]”"??? --------------------编程问答-------------------- Response.BinaryWrite((byte[,])ldt_pic.Rows[1][10]); --------------------编程问答-------------------- 如果是把System.String转换成System.Byte数组用来做流函数参数的话,可以用System.Encoding.UTF8.GetBytes(System.String)这个静态编码函数把string编码成byte[]用来IO读写,当然可以相反地把byte[]在用GetString(byte[])反编码成字符串,需要注意的是字符串的CultureInfo。Encoding命名空间下面有UTF7,UTF8,Unicode,UTF32等字符集。
有点。。。纠结 --------------------编程问答-------------------- 我也在纠结这东西
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,