One problem is that you seem to have an extra opening parenthesis after
VALUES
keyword
The commmand should be
com.CommandText = "insert into three(sid,supid,supname,supperson) values(@sid,@supid,@supname,@supperson)"
Another thing is that you don't execute the first command at all, instead you go into the loop and modify the statement.
The same problem is with the second statement, it should be
com.CommandText = "insert into three(pno,pname,qty,price) values(@pno,@pname,@qty,@price)"
Then since you run the statement inside a loop you add parameters on every iteration. The first time the amount of parameters is 4 the second time 8 and so on. This means that the execution will fail on second iteration. You should move the parameter addition outside the loop and just set the åarameter values inside the loop.
Also it looks a bit odd that you're using completely different values and columns but the table name in both statements is
three
I believe you would benefit going through the following article:
Properly executing database operations[
^]