【问题标题】:Converting issue Byte to Byte将问题字节转换为字节
【发布时间】:2013-06-06 10:58:41
【问题描述】:

在可能代码中出现错误之前,我从不使用 Bytes,请查看

    SqlDataReader reader = cmd.ExecuteReader();
    reader.Read();
    SqlDataReader dr = ExecuteReader(Globals.con, CommandType.Text,
    "select FileName,MediaData,Extension from media where Id=" + ID);
    string FileName="";
    Byte[] MediaData= null;
    string Extension = "";
    while (dr.Read())
    {
        FileName = dr["FileName"].ToString();
        MediaData = Convert.ToByte(dr["MediaData"].ToString()); error is here
        Extension = dr["Extension"].ToString();              
    }
    dr.Close();
    string filename = (String)FileName;
    byte[] fileToDownload = (byte[])MediaData;
    String fileExtension = (String)Extension;

    in gridview i use this code below it working i need manual date
     not like code below
    string filename = (String)reader.GetValue(1);
    byte[] fileToDownload = (byte[])reader.GetValue(2);
    String fileExtension = (String)reader.GetValue(3);

请帮帮我

【问题讨论】:

  • 您遇到了哪个错误?

标签: asp.net sql-server c#-4.0


【解决方案1】:

Convert.ToByte 返回一个单个字节,而不是一个数组。

您也在使用ToString,它可以将二进制数据完全转换为您无法使用的表示:

MediaData = Convert.ToByte(dr["MediaData"].ToString())

应该是:

MediaData = (byte[])dr.Items["MediaData"];

【讨论】:

  • 我使用相同的请再次检查代码 MediaData = Convert.ToByte(dr["MediaData"].ToString());错误在这里
  • @Vikas - 没错。我已经解释了为什么这条线不起作用。
猜你喜欢
  • 2013-02-13
  • 2011-01-22
  • 1970-01-01
  • 2017-01-30
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多