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

C# datacolumn[row][0]返回system.byte时如何查看为字符串,c#,mysql,C#,Mysql,这个问题与mysql和c有关 我有一个存储过程,它返回查询输出 查询将列连接为第一列和其他单独的列 当我以dt.rows[i][0]的形式访问数据列时,它将以System.byte[]的形式返回 甚至我也试图将其写入文件,但它总是以System.byte[]的形式写入文件 我尝试使用 字节[]b=字节[]dt.行[i][0] 它给出异常,因为无法将字符串转换为字节[] 我尝试将所有值作为字符串添加到列表中,如 List<string> list = new List<strin

这个问题与mysql和c有关

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

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

甚至我也试图将其写入文件,但它总是以System.byte[]的形式写入文件

我尝试使用 字节[]b=字节[]dt.行[i][0]

它给出异常,因为无法将字符串转换为字节[]

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

List<string> list = new List<string>();
                foreach (DataRow row in dt.Rows)
                {
                    list.Add(row[0].ToString());
                }
将列表[i]写入文件会将System.byte[]写入文件

你知道怎么解决这个问题吗

其他列可以正常访问和显示,只有第一列具有多个列的取消值时才是这种情况

像这样

选择CONCAT“390”,日期t5.InventoryDate,t5.SkourItem作为 主键, t5.CustomerID,t5.entityID,t5.inventoryDate,t5.SkourItem,t5.Category,t5.inventory FROM


还没有测试过代码,但希望您能获得IDEA。 将每个八位组转换为一个数字,并将该数字转换为一个字符

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;
    }
}

谢谢你回复我的问题 可能提供的解决方案也会起作用,但我还没有测试它

我发现解决办法是 而不是这个短语

选择CONCAT'390',DATE t5.InventoryDate,t5.skourItem作为主键,t5.CustomerID,t5.entityID,t5.InventoryDate,t5.skourItem,t5.Category,t5.inventory FROM

我把它改成这样

选择CONCAT“390”,castDATE t5.InventoryDate作为字符,castt5.SkourItem作为字符作为主键,t5.CustomerID,t5.entityID,t5.InventoryDate,t5.SkourItem,t5.Category,t5.inventory FROM

强制转换将日期和时间值或字符串以外的任何值转换为字符 所以mysql返回字符串而不是字节[]

但再次感谢您的回复

问候
Afzal

在许多小时后,我创建了Encode和Serialize,这将返回一个带有src的字符串,您将该字符串应用于img

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);
            }

数据列大概是二进制数据。。。