Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试在MySql数据库中显示存储的签名后,获取墨迹序列化格式操作失败消息_C#_Mysql_Wpf - Fatal编程技术网

C# 尝试在MySql数据库中显示存储的签名后,获取墨迹序列化格式操作失败消息

C# 尝试在MySql数据库中显示存储的签名后,获取墨迹序列化格式操作失败消息,c#,mysql,wpf,C#,Mysql,Wpf,谢谢你的帮助 保存在MySQL中的代码-似乎工作正常。当我读回blob并尝试将其转换回从WPF inkcanvas保存的签名时,会发生错误。在ms.potion=0之后立即获取 if (MyInkCanvas.Strokes.Count > 0) { byte[] signature; using (MemoryStream ms = new MemoryStream()) { MyInkCanvas.Strokes.Save(ms);

谢谢你的帮助

保存在MySQL中的代码-似乎工作正常。当我读回blob并尝试将其转换回从WPF inkcanvas保存的签名时,会发生错误。在
ms.potion=0之后立即获取

if (MyInkCanvas.Strokes.Count > 0)
{
    byte[] signature;
    using (MemoryStream ms = new MemoryStream())
    {
        MyInkCanvas.Strokes.Save(ms);
        signature = ms.ToArray();
    }


    string myConnection = Global.mySqlconn;
    string updater = Global.fname + " " + Global.lname;
    string sql002 = "INSERT INTO database.signature (signature_type, signature_test_id, signature, signature_updater_name, signature_cdate) ";
    sql002 += "Values ('" + svtype + "', " + tid + ", '" + signature + "', '" + updater + "', CURRENT_TIMESTAMP) ";

    // MessageBox.Show(sql002);

    MySqlConnection conn2 = new MySqlConnection(myConnection);
    MySqlCommand cmd2 = new MySqlCommand();
    cmd2.CommandText = sql002;
    cmd2.Connection = conn2;
    conn2.Open();
    try
    {
        int aff = cmd2.ExecuteNonQuery();
        conn2.Close();
    }
    catch
    {
        MessageBox.Show("Error encountered during INSERT of signature operation - call operations - " + sql002);
        return;
    }
从MySQL数据库读取和显示的代码-可以读取,但不能序列化

try
    {
        //download the image

        byte[] signature = Signature.DownloadImage(tid, svtype);
        using (MemoryStream ms = new MemoryStream(signature))
        {
            ms.Position = 0;
            StrokeCollection strokes = new StrokeCollection(ms);
            MyInkCanvas.Strokes = strokes;
            ms.Close();
        }

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

}
        // <summary>
/// Downloads a byte[] from a BLOB
/// </summary>
/// <param name="connectionString"></param>
/// <returns>The BLOB as byte[]</returns>
public static byte[] DownloadImage(string stid, string stype)
{
    try
    {
        string myConnection = Global.mySqlconn;
        string sql = "SELECT signature from database.signature where signature_test_id = " + stid + " and signature_type = '" + stype + "'";
        MessageBox.Show(sql);
        MySqlConnection conn = new MySqlConnection(myConnection);
        MySqlCommand cmd = new MySqlCommand(sql, conn);


        conn.Open();
        byte[] barrImg = (byte[])cmd.ExecuteScalar() as byte[];
        conn.Close();

        return barrImg;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
试试看
{
//下载图片
字节[]签名=签名。下载图像(tid,svtype);
使用(MemoryStream ms=新的MemoryStream(签名))
{
ms.Position=0;
StrokeCollection笔划=新的StrokeCollection(毫秒);
MyInkCanvas.Strokes=笔划;
Close女士();
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
// 
///从BLOB下载字节[]
/// 
/// 
///BLOB作为字节[]
公共静态字节[]下载图像(字符串stid、字符串stype)
{
尝试
{
字符串myConnection=Global.mySqlconn;
string sql=“从数据库中选择签名。其中签名\u测试\u id=“+stid+”和签名\u类型=”“+stype+””;
MessageBox.Show(sql);
MySqlConnection conn=新的MySqlConnection(myConnection);
MySqlCommand cmd=新的MySqlCommand(sql,conn);
conn.Open();
字节[]barrImg=(字节[])cmd.ExecuteScalar()作为字节[];
康涅狄格州关闭();
返回路障;
}
捕获(例外情况除外)
{
掷骰子;
}
}