Is it require to fill all tables inside of the database?
BAD PRACTICE ALERT!

You need to delimit each string. Not the whole lot. 

Note where the single quotes are:

("Insert Into dbo.PrnInf(PrnName, PrnSurName, PrnEgn )     Values 
('"+txtPrnName.Text+"', '"+txtPrnSurName.Text+"','"+txtPrnEgn.Text+"')", conn);


However, this can lead to SQL Injection. So...

GOOD PRACTICE!

Parameterise your query

SqlCommand cmd = new SqlCommand
    ("Insert Into dbo.PrnInf(PrnName, PrnSurName, PrnEgn )     Values 
    (@PrnName, @PrnSurName, @PrnEgn)", conn);
cmd.Parameters.AddWithValue("@PrnName", txtPrnName.Text);
cmd.Parameters.AddWithValue("@PrnSurName", txtPrnSurName.Text);
cmd.Parameters.AddWithValue("@PrnEgn", txtPrnEgn.Text);
cmd.ExecuteNonQuery();