Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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# 如何向类中添加图像并保存在数据库中_C#_Sql Server_Database_Wpf_Image Processing - Fatal编程技术网

C# 如何向类中添加图像并保存在数据库中

C# 如何向类中添加图像并保存在数据库中,c#,sql-server,database,wpf,image-processing,C#,Sql Server,Database,Wpf,Image Processing,我有一个像defined这样的类,我想将image添加到此类中如何执行此操作: public class CLASSFIVE { public CLASSFIVE() { // Insert code required on object creation below this point. } public int ContactID { get; set; } public string FirstName { get; set; }

我有一个像defined这样的类,我想将image添加到此类中如何执行此操作:

public class CLASSFIVE
{
    public CLASSFIVE()
    {
        // Insert code required on object creation below this point.
    }

    public int ContactID { get; set; }
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
    public string LastName { get; set; }
    public string Contact { get; set; }
    public string GuardianPhone { get; set; }
    public string DOB { get; set; }
    public string Address { get; set; }
    public object State { get; set; }
    public string Gender { get; set; }
    public string Nationality { get; set; }
    public string Disability { get; set; }
    public object photo { get; set; }

    static string MYCONNEC = ConfigurationManager.ConnectionStrings["MYCONNECTION"].ConnectionString;

    public DataTable Select()
    {
        SqlConnection conn = new SqlConnection(MYCONNEC);
        
        DataTable dt = new DataTable();

        try
        {
            SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_c5", conn);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(dt);

            if (conn.State != ConnectionState.Open)
            { 
                conn.Open(); 
            }
        }
        catch (Exception)
        {
        }
        finally
        {
            conn.Close();
        }

        return dt;
    }

    public bool Insert(CLASSFIVE c5)
    {
        bool isSuccess = false;

        SqlConnection conn = new SqlConnection(MYCONNEC);

        try
        {
            SqlCommand cmd = new SqlCommand("INSERT INTO tbl_c5 (FirstName, MiddleName, LastName, Contact, GuardianPhone, DOB, Address,State, Gender, Nationality, Disability) VALUES (@FirstName, @MiddleName, @LastName, @Contact, @GuardianPhone, @DOB, @Address,@State, @Gender, @Nationality, @Disability)", conn);
            cmd.Parameters.AddWithValue("@FirstName", c5.FirstName);
            cmd.Parameters.AddWithValue("@MiddleName", c5.MiddleName);
            cmd.Parameters.AddWithValue("@LastName", c5.LastName);
            cmd.Parameters.AddWithValue("@Contact", c5.Contact);
            cmd.Parameters.AddWithValue("@GuardianPhone", c5.GuardianPhone);
            cmd.Parameters.AddWithValue("@DOB", c5.DOB);
            cmd.Parameters.AddWithValue("@Address", c5.Address);
            cmd.Parameters.AddWithValue("@State", c5.State);
            cmd.Parameters.AddWithValue("@Gender", c5.Gender);
            cmd.Parameters.AddWithValue("@Nationality", c5.Nationality);
            cmd.Parameters.AddWithValue("@Disability", c5.Disability);
            cmd.Parameters.AddWithValue("@photo", c5.Photo);

            if (conn.State != ConnectionState.Open)
            {
                conn.Open(); 
            }

            int rows = cmd.ExecuteNonQuery();

            if (rows > 0)
            {
                isSuccess = true;
            }
            else
            {
                isSuccess = false;
            }
        }
        catch (Exception)
        {
        }
        finally
        {
            conn.Close();
        }

        return isSuccess;
    }

    public bool Update(CLASSFIVE c5)
    {
        bool isSuccess = false;

        SqlConnection conn = new SqlConnection(MYCONNEC);

        try
        {
            SqlCommand cmd = new SqlCommand("UPDATE tbl_c5 SET FirstName=@FirstName, MiddleName=@MiddleName, LastName=@LastName, Contact=@Contact, GuardianPhone=@GuardianPhone, DOB=@DOB, Address=@Address, Gender=@Gender, Nationality=@Nationality, Disability=@Disability WHERE ContactID=@ContactID", conn);
            cmd.Parameters.AddWithValue("@FirstName", c5.FirstName);
            cmd.Parameters.AddWithValue("@MiddleName", c5.MiddleName);
            cmd.Parameters.AddWithValue("@LastName", c5.LastName);
            cmd.Parameters.AddWithValue("@Contact", c5.Contact);
            cmd.Parameters.AddWithValue("@GuardianPhone", c5.GuardianPhone);
            cmd.Parameters.AddWithValue("@DOB", c5.DOB);
            cmd.Parameters.AddWithValue("@Address", c5.Address);
            cmd.Parameters.AddWithValue("@State", c5.State);
            cmd.Parameters.AddWithValue("@Gender", c5.Gender);
            cmd.Parameters.AddWithValue("@Nationality", c5.Nationality);
            cmd.Parameters.AddWithValue("@Disability", c5.Disability);
            cmd.Parameters.AddWithValue("@photo", c5.Photo);
            cmd.Parameters.AddWithValue("ContactID", c5.ContactID);
                
            if (conn.State != ConnectionState.Open)
            { 
                conn.Open(); 
            }

            int rows = cmd.ExecuteNonQuery();

            if (rows > 0)
            {
                isSuccess = true;
            }
            else
            {
                isSuccess = false;
            }
        }
        catch (Exception)
        {
        }
        finally
        {
            conn.Close();
        }

        return isSuccess;
    }

    public bool Delete(CLASSFIVE c5)
    {
        bool isSuccess = false;

        SqlConnection conn = new SqlConnection(MYCONNEC);

        try
        {
            SqlCommand cmd = new SqlCommand("DELETE FROM tbl_c5 WHERE ContactID=@ContactID", conn);

            cmd.Parameters.AddWithValue("@ContactID", c5.ContactID);

            if (conn.State != ConnectionState.Open)
            {
                conn.Open(); 
            }

            int rows = cmd.ExecuteNonQuery();

            if (rows > 0)
            {
                isSuccess = true;
            }
            else
            {
                isSuccess = false;
            }
        }
        catch (Exception)
        {
        }
        finally
        {
            conn.Close();
        }

        return isSuccess;
    }
}
我有一个像这样的保存按钮,其中我引用了上面的类,但我想添加和图像到这个按钮。请查看下面的代码,看看您是否可以帮助我解决这个问题:

private void BTNSAVE_Click(object sender, RoutedEventArgs e)
{
    try
    {
        if (txtFirstName.Text == "" || txtMiddelName.Text == "" || txtLastName.Text == "" || txtGuardianPhone.Text == "" || txtNationality.Text == "" || txtstate.Text == "" || txtGender.Text == "" || txtDisability.Text == "")
        {
            MessageBox.Show("Required Field:FirstName,MiddleName,LastName, \n GuardianPhone,State/Province,Gender, \n Nationality,Disability \n Save Aborted; enter accurate values");
        }
        else
        {
            using (SqlConnection conn = new SqlConnection(MYCONNEC))
            {
                c5.FirstName = txtFirstName.Text;
                c5.MiddleName = txtMiddelName.Text;
                c5.LastName = txtLastName.Text;
                c5.Contact = txtContact.Text;
                c5.GuardianPhone = txtGuardianPhone.Text;
                c5.DOB = txtDOB.Text;
                c5.Address = txtAddress.Text;
                c5.State = txtstate.Text;
                c5.Gender = txtGender.Text;
                c5.Nationality = txtNationality.Text;
                c5.Disability = txtDisability.Text;

                bool success = c5.Insert(c5);

                if (success == true)
                {
                    LBLDP.Content = "Saved Successfully!!";
                    Refresh();
                    Clear();
                }
                else
                {
                    MessageBox.Show("Contact Not Saved, Try Again");
                }
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "MGT Message", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}

我想在这个应用程序的保存按钮中添加一个
c5.photo
,有人能帮我吗?

你不能直接将图像保存在类对象和数据库中。要实现这一点,您可以通过两种方式实现:

  • 从请求中获取图像,将其保存到服务器,并将该特定文件的路径保存到数据库中。这是实现这一点的最佳方法,因为它不会对数据库大小产生任何影响

  • 如果只想将文件保存在数据库中,则可以将数据库列数据类型用作BLOB,这样可以保存文件或对象。在你的课堂上,你制作照片道具。作为字符串并保存图像或文件的base64(推荐),或者将属性设置为Stream并将文件流保存在此特定对象中,并将其推送到数据库