ошибка при попытке получить значение столбца datagridview "15 цифр" - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь закодировать систему учета, в которую я должен ввести идентификатор продукта, название продукта и цену продукта. После этого он должен быть сохранен в файле .accdb

Моя проблема заключается в том, что при вводе более 10 цифр в идентификатор продукта в datagridview выдается сообщение об ошибке, говорящее о том, что значение слишком велико для типа int32.

Ошибка :

Дополнительная информация: значение было слишком большим или слишком маленьким для Int32.Не удалось сохранить <6221060003181> в столбце Item_Code. ожидаемый тип Int32.

Когда я открывал файл accdb, я обнаружил, что данные сохранены; но в следующий раз, когда я открою форму, она выдаст мне эту ошибку!

public partial class Productentry : MetroFramework.Forms.MetroForm
{

    public OleDbConnection connection = new OleDbConnection();

    public Productentry()
    {
        InitializeComponent();
        connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Sama_Software\WindowsFormsApplication1\WindowsFormsApplication1\DB.accdb;Jet OLEDB:Database Password=**************";
    }

    private void Productentry_Load(object sender, EventArgs e)
    {
        ViewData();
        // TODO: This line of code loads data into the 'dBDataSet.Product' table. You can move, or remove it, as needed.
        this.productTableAdapter1.Fill(this.dBDataSet.Product);


        ViewData();
    }
    void ViewData()
    {

        OleDbDataAdapter da = new OleDbDataAdapter("select * from [Product]",connection);
        da.Fill(this.dBDataSet.Product);

    }
    private void bunifuButton4_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void bunifuButton3_Click(object sender, EventArgs e)
    {
        OleDbDataAdapter da = new OleDbDataAdapter("INSERT INTO [Product] (Item_Code, Item_Name, Price) VALUES ('" + Pidn.Text + "','" + name.Text + "','" + price.Text + "')", connection);
        da.Fill(dBDataSet)
        ViewData();
        Pidn.Clear();
        name.Clear();
        price.Clear();
    }

    private void Cat_TextChange(object sender, EventArgs e)
    {

    }

    private void bunifuButton1_Click(object sender, EventArgs e)
    {
        OleDbDataAdapter da = new OleDbDataAdapter("UPDATE [Product] WHERE [Item_Code]=" + Pidn.Text + " SET [Item_Name]='" + name.Text + "',[Price]=" + price.Text + "", connection);
        da.Fill(dBDataSet);
        ViewData();
        Pidn.Clear();
        name.Clear();
        price.Clear();
    }

    private void bunifuButton4_Click_1(object sender, EventArgs e)
    {
        this.Close();
    }
    private void Pid_TextChange(object sender, EventArgs e)
    {
    }
}

}

1 Ответ

0 голосов
/ 03 июля 2019

Сохранить штрих-код в виде текста.

Даже если он составлен из цифр, это не число, а код фиксированной длины, и он может даже иметь начальный ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...