首页 > 解决方案 > 使用 C# 的系统参数异常“参数无效”图像数据类型

问题描述

我正在尝试从Data Type imageSQL SERVER 中的格式读取图像文件。

C#

private void SalesMain_Load(object sender, EventArgs e)
    {
        string cs = "my connection string";
        SqlConnection conn = new SqlConnection(cs);
        SqlCommand cmd = new SqlCommand();
        string fileName = ""; 
        byte[] data; // 

        using (conn)
        {
            using (cmd)
            {

                cmd.CommandType = CommandType.Text;
                cmd.CommandText = @"select CAST(compressedimg AS VARBINARY(MAX)) ReceiptCompressed from tb1 where id = 684489";
            
                cmd.Connection = conn;
                conn.Open();

                SqlDataReader reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        fileName = "InvoiceName";
                        data = (byte[])reader["compressedimg"];

                        if (data != null)
                        {
                            SaveData(fileName, data);
                        }
                    }
                }

                reader.Close();

            }
        }
    }

protected bool SaveData(string FileName, byte[] Data)
    {
        using (Image image = Image.FromStream(new MemoryStream(Data))) //parameter is not valid
        {
            image.Save("MyImage.jpg", ImageFormat.Jpeg);
        }

        return true;

        
    }

我也尝试了stackoverflow的其他链接。它不起作用。同样的错误。

我也尝试不将数据库字段转换为 VARBINARY(MAX)。相同的结果

标签: c#imageado.net

解决方案


推荐阅读