“The SqlDataAdapter, serves as a bridge between a DataSet and SQL Server for retrieving and saving data. The SqlDataAdapter provides this bridge by mapping Fill, which changes the data in the DataSet to match the data in the data source, and Update, which changes the data in the data source to match the data in the DataSet“
It seems that you are not really using the dataset to show information to the user, or manipulate the data, and maybe you don’t really need a dataset (and the corresponding SqlDataAdapter).
You could execute your insert command (without assigning it to the InsertCommand property of an adapter) this way:
cmd.ExecuteNonQuery ( )
If you really want to use the dataset and the data adapter, <b>one </b>of the actions that are missing is the update of the adapter before closing the connection.
Have a look at the following example on using datasets and data adapters: Insert command with parameters.