Let me guess: the table fields name and party contain the text "textBox1.Text" and "textBox2.Text"!
That is because
SqlConnection conn = new SqlConnection(dbconnstr);
string qry = "insert into test_table (name,party,party_im,name_im) values (textBox1.Text,textBox2.Text,@ImageData1,@ImageData2)";
Hard codes the names of the textboxes into the SQL string, rather than the contents. Try:
SqlConnection conn = new SqlConnection(dbconnstr);
string qry = "insert into test_table (name, party, party_im, name_im) values (@NM, @PT, @ImageData1, @ImageData2)";
SqlCommand SqlCom = new SqlCommand(qry, conn);
SqlCom.Parameters.Add(new SqlParameter("@NM", textBox1.Text));
SqlCom.Parameters.Add(new SqlParameter("@PT", textBox2.Text));
SqlCom.Parameters.Add(new SqlParameter("@ImageData1", imagedata));
SqlCom.Parameters.Add(new SqlParameter("@ImageData2", imagedata));
Though why you are insertingthe same data to your table twice ("imagedata") I don't know...