Как реализовать fifo с условиями в C # и SQL Server? - PullRequest
0 голосов
/ 03 июля 2018

Я выбрал несколько баз данных с одинаковым названием продукта, ценой и количеством и отсортировал их по значениям первичного ключа в таблице данных. Но когда я уменьшаю количество на складе, оно уменьшается со всех строк. Я хочу, чтобы мой код проверял количество запаса в соответствии с количеством пользователя, введенным в текстовое поле, и уменьшал его только с ПЕРВОГО РЯДА. Это то, что я смог сделать до сих пор. Заранее извиняюсь за плохое форматирование. Я новичок в программировании и stackoverflow.

В таблице данных есть столбцы

Item_Name, Item_Quantity, Item_Price.

Код:

private void btn_save_Click(object sender, EventArgs e)
{
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select * from stock_recieve where Item_Name like'" + comboBoxitem.Text + "'order by [Bill No] asc";

    cmd.ExecuteNonQuery();

    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);

    foreach (DataRow dr in dt.Rows)
    {
        // DataRow row = dt.Select("Item_Quantity").FirstOrDefault();
        dt.Rows[0]["Item_Quantity"]=;

        int qty = 0;
        string pname = "";

        qty = Convert.ToInt32(dr["Item_Quantity"].ToString());
        qty = Convert.ToInt32(textBoxqty.Text);

        pname = dr["Item_Name"].ToString();

        SqlCommand cmd6 = con.CreateCommand();
        cmd6.CommandType = CommandType.Text;
        cmd6.CommandText = "update stock_recieve set Item_Quantity=Item_Quantity-" + qty + "where Item_Name ='" + pname.ToString() + "'";

        cmd6.ExecuteNonQuery();
    }

    //MessageBox.Show("Record inserted successfully");
}

1 Ответ

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

Просто используйте top 1 в вашем запросе выбора. Также использование параметров SQL очень важно. Попробуйте как:

...
cmd.CommandText = "select TOP 1 * from stock_recieve where Item_Name like @name order by [Bill No] asc";
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value =comboBoxitem.Text;
cmd.ExecuteNonQuery();
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...