如何在datacolumn [row] [0]返回system.byte时查看为字符串

时间:2015-06-14 21:27:53

标签: c# mysql

问题与mysql和c#

有关

我有一个存储过程,它返回查询的放置 该查询将列连接为第一列和其他单个列

当我以dt.rows [i] [0]的身份访问数据列时,它返回System.byte []

即使我尝试将其写入文件,但它始终在文件

中写为System.byte []

我尝试使用将其转换为字节数组 byte [] b =(byte [])dt.Rows [i] [0];

它提供异常,因为无法将字符串转换为byte []

我尝试将所有值作为字符串添加到列表中,如

List<string> list = new List<string>();
                foreach (DataRow row in dt.Rows)
                {
                    list.Add(row[0].ToString());
                }

将文件列表[i]写入文件将System.byte []写入文件

任何想法如何克服这个问题

正常访问和显示其他列,仅在第一列具有来自多列的可能值的情况下

像这样

  

SELECT CONCAT('390',DATE(t5.InventoryDate),t5.SKUorItem)AS   PK,       t5.CustomerID,t5.entityID,t5.inventoryDate,t5.SKUorItem,t5.Category,t5.inventory FROM

3 个答案:

答案 0 :(得分:0)

没有测试过代码,但希望你能得到这个代码。 将每个八位字节转换为数字并将数字转换为字符。

int character = 0;
int bitValue = 1;
int count = 0;
string result = "";

for (int i = row[0].Length - 1; i >= 0 ; i--)
{
    character += row[0][i] * bitValue;
    bitValue *= 2;
    count++;
    if(count == 7)
    {
         count = 0;
         character= 0;
         bitValue = 1;
         result += (char) character;
    }
}

答案 1 :(得分:0)

非常感谢您回复我的查询 可能提供的解决方案也可以工作,但我还没有测试过它

我找到了解决方案 而不是这种语言

  

SELECT CONCAT('390',DATE(t5.InventoryDate),t5.SKUorItem)AS PK,t5.CustomerID,t5.entityID,t5.inventoryDate,t5.SKUorItem,t5.Category,t5.inventory FROM

我像这样修改了

  

SELECT CONCAT('390',强制转换(DATE(t5.InventoryDate)为char),强制转换(t5.SKUorItem为char))AS PK,t5.CustomerID,t5.entityID,t5.inventoryDate,t5.SKUorItem, t5.Category,t5.inventory FROM

转换会将日期和时间值或除字符串以外的任何值转换为char 所以mysql返回String而不是byte []

但再次感谢您的回复

问候 阿夫扎尔

答案 2 :(得分:0)

许多小时后,我创建了Encode和Serialize,这将返回一个字符串,其中包含您应用于img的src。

string img_src = data.Rows[0].IsNull("PHOTO") ? string.Format("") : string.Format("data:image/jpeg;base64,{0}", data.Rows[0]["PHOTO"].EncodeAndSerialize().Replace("\"", ""));

    public static string EncodeAndSerialize<T>(this T obj) where T : new()
            {
                var settings = new JsonSerializerSettings
                {
                    ContractResolver = new HtmlEncodeResolver(),
                    Formatting = Newtonsoft.Json.Formatting.None
                };
                return JsonConvert.SerializeObject(obj, settings);
            }