Последовал советам и оставил как есть. Интерфейс при добавлении новой записи:
 Поля не все обязательны к заполнению, но если не заполнить поля не строковые то выдается ошибка:
| Код | Не удалось преобразовать значение параметра из String в DateTime.
|
| Код | private void btnOk_Click(object sender, EventArgs e) { SqlCommand cmd = new SqlCommand("INSERT INTO Hardware(Name, Date, Guarant, Price, Quentity, Information, ID_Type) VALUES(@Name, @Date, @Guarant, @Price, @Quentity, @Information, @ID_Type)", con); cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 50); cmd.Parameters["@Name"].Direction = ParameterDirection.Input; cmd.Parameters["@Name"].Value = txtName.Text;
cmd.Parameters.Add("@Date", SqlDbType.DateTime); cmd.Parameters["@Date"].Direction = ParameterDirection.Input; cmd.Parameters["@Date"].Value = txtDate.Text;
cmd.Parameters.Add("@Guarant", SqlDbType.SmallDateTime); cmd.Parameters["@Guarant"].Direction = ParameterDirection.Input; cmd.Parameters["@Guarant"].Value = txtGuarant.Text;
cmd.Parameters.Add("@Price", SqlDbType.Money); cmd.Parameters["@Price"].Direction = ParameterDirection.Input; cmd.Parameters["@Price"].Value = txtPrice.Text;
cmd.Parameters.Add("@Quentity", SqlDbType.Int); cmd.Parameters["@Quentity"].Direction = ParameterDirection.Input; cmd.Parameters["@Quentity"].Value = txtQuantity.Text;
cmd.Parameters.Add("@Information", SqlDbType.Text); cmd.Parameters["@Information"].Direction = ParameterDirection.Input; cmd.Parameters["@Information"].Value = txtInformation.Text;
cmd.Parameters.Add("@ID_Type", SqlDbType.Int); cmd.Parameters["@ID_Type"].Direction = ParameterDirection.Input; cmd.Parameters["@ID_Type"].Value = combType.SelectedIndex + 1;
//сохранить в базу con.Open(); cmd.ExecuteNonQuery(); con.Close(); }
|
Как этого можно избежать? Не проверкой же на то заполенно поле или нет и в зависимости от этого добавлять запись |