Ниже этого кода я получаю неправильный вывод при увеличении строкового значения в столбце моей базы данных "SupplierID". Я передаю строковое значение в свой lbl_id в форме ADDSupplier, и это то, что я использовал для вставки значения в мой «SupplierID».
Желаемый вывод:
- SPPL-0001
- SPPL-0002
- SPPL-0003
и т. д.
Текущий вывод (ниже этих кодов):
- SPPL-0001
- SPPL-00012
- SPPL-00013
и т.д.
ПРИМЕЧАНИЕ. Когда я повторяю вставку данных, я получаю текущий вывод, который я указал выше, но когда я перезапускаю программу и последнее введенное значение, например, SPPL-00013. Когда я открываю форму добавления, lbl_id отображает идентификатор как SPPL-0004. Если я продолжу, он станет SPPL-00045.
PS: SupplierID - это varchar (50) в моей базе данных, а также PRIMARY_KEY
Это изображение показывает неправильный вывод шахты
Я хочу получить помощь, чтобы исправить мою логику и получить желаемый результат. Пожалуйста, помогите мне. Спасибо
public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
public SIMSSupplier()
{
InitializeComponent();
}
public string ID = "SPPL-000";
public void GenerateAutoID()
{
using (var con = SQLConnection.GetConnection())
{
using (var select = new SqlCommand("Select Count(SupplierID) from admin_supplier", con))
{
int i = Convert.ToInt32(select.ExecuteScalar());
i++;
supply.lbl_id.Text = ID + i.ToString();
}
}
}
private void btn_register_Click(object sender, EventArgs e)
{
supply = new ADDSupplier(this);
supply.Show();
GenerateAutoID();
}
}
public partial class ADDSupplier : MetroForm
{
SIMSSupplier _view;
public ADDSupplier(SIMSSupplier _view)
{
InitializeComponent();
this._view = _view;
}
string date = DateTime.Now.ToString("MMMM-dd-yyyy");
private void btn_ok_Click(object sender, EventArgs e)
{
_view.ID = lbl_id.Text;
using (var con = SQLConnection.GetConnection())
{
if (string.IsNullOrEmpty(txt_name.Text) || string.IsNullOrEmpty(txt_contact.Text) || string.IsNullOrEmpty(cbox_remark.Text) || string.IsNullOrEmpty(txt_address.Text))
{
CustomNotifcation.Show("Please input the required fields", CustomNotifcation.AlertType.warning);
}
else
{
using (var select = new SqlCommand("Insert into admin_supplier (SupplierID, Companyname, Contactnumber, Date, Remarks, Address) Values (@SupplierID, @Companyname, @Contactnumber, @Date, @Remarks, @Address)", con))
{
select.Parameters.Add("@SupplierID", SqlDbType.VarChar).Value = lbl_id.Text;
select.Parameters.Add("@Companyname", SqlDbType.VarChar).Value = txt_name.Text;
select.Parameters.Add("@Contactnumber", SqlDbType.VarChar).Value = txt_contact.Text;
select.Parameters.Add("@Date", SqlDbType.VarChar).Value = date;
select.Parameters.Add("@Remarks", SqlDbType.VarChar).Value = cbox_remark.Text;
select.Parameters.Add("@Address", SqlDbType.VarChar).Value = txt_address.Text;
select.ExecuteNonQuery();
CustomMessage.Show("Message: Supplier successfully added!", CustomMessage.Messagetype.Success2);
_view._Supplier();
}
}
}
}
}