Is it require to fill all tables inside of the database? Now,I created upper that table and in order to test I will give 3 textboxes values as below.

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


However,I'm getting the error in the "cmd.execute".Also,I defined the primary key and identity specification on the primary key.
the moral of the story,is it require to fill all tables inside of the database?

Best Regards,
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();