请高手解答 "无法将类型为“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#