Как добавить элемент в ListView? - PullRequest
0 голосов
/ 03 декабря 2010

В настоящее время я разрабатываю систему POS (приложение для Windows) на C # с SQL Server в качестве базы данных.В моей базе данных есть таблица продуктов, которая содержит следующие поля: штрих-код (первичный ключ), productID, productName, productQty, productSize и productUnitPrice.

В моем графическом интерфейсе у меня есть TEXTBOX для штрих-кода,numericUpDown для количества и LISTVIEW (7 столбцов: штрих-код, ID, описание, количество, размер, обычная цена, цена продажи) для корзины.

Моя проблема в том, как добавить информацию о продукте(штрих-код, productID, productName, productQty, productSize, productUnitPrice) внутри LISTVIEW на основе штрих-кода, который был введен в штрих-код TEXTBOX?

//Inventory Base Class
public abstract class inventoryBaseClass
{
    public inventoryBaseClass()
    {

    }

    public inventoryBaseClass(uint _id)
    {
        Id = _id;
    }

    public void OpenSqlConn()
    {
        try
        {
            sqlConnection = @"Data Source=PC10\SQLEXPRESS;Initial Catalog=POSDB;Integrated Security=True";
            sqlConn = new SqlConnection(sqlConnection);
            sqlConn.Open();
        }

        catch (Exception ex)
        {
            DialogResult r = MessageBox.Show(ex.Message, "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            if (r == DialogResult.OK)
                Application.Exit();
        }
    }
}


//Point of Sales Class
public class pointOfSalesClass : inventoryBaseClass
{

    public pointOfSalesClass()
    {

    }

    public pointOfSalesClass(uint _id)
        : base(_id)
    {
        OpenSqlConn();
        string sql = @"Select Barcode, ProductID, ProductName, TotalStocks,Size, Price, SaleAmount FROM PRODUCT WHERE Barcode = +" + _id;
        SqlCmd = new SqlCommand();
        SqlCmd.CommandText = sql;
        SqlCmd.Connection = SqlConn;

    }

}


//Point of sales Form
public partial class Point_of_Sales : Form
{

    //these variables will hold the values that will be retreived in the SELECT statement in the Point of Sales Class
    uint barcode = 0;
    string id = "";
    string productName = "";
    uint qty = 0;
    string size = "";
    double regularPrice = 0.0;
    double salePrice = 0.0;

    //ADD to cart(Listview) Button
    private void AddItem_Click(object sender, EventArgs e)
    {

        //the user enters the barcode on the txtBarcode textbox and the quantity to be purchased on the numericUpDown control
        //When this button is pressed, the select statement will be executed

        pointOfSalesClass addToCart = new pointOfSalesClass(uint.Parse(txtBarcode.Text.ToString()));
        addToCart.SqlDataRdr = addToCart.SqlCmd.ExecuteReader();

        uint quantity = Convert.ToUInt16(numericQty.Value);

        while (addToCart.SqlDataRdr.Read())
        {
            //These are the values to be retreived
            barcode = Convert.ToUInt32(addToCart.SqlDataRdr["Barcode"].ToString());
            id = addToCart.SqlDataRdr["ProductID"].ToString();
            productName = addToCart.SqlDataRdr["ProductName"].ToString();
            qty = Convert.ToUInt32(addToCart.SqlDataRdr["TotalStocks"].ToString());
            size = addToCart.SqlDataRdr["Size"].ToString();
            regularPrice = Convert.ToDouble(addToCart.SqlDataRdr["Price"].ToString());
            salePrice = Convert.ToDouble(addToCart.SqlDataRdr["SaleAmount"].ToString());
        }

        //After retreiving all values in the select statement
        //How do I insert the values(barcode, id, productname, quantity(from the numericUpDown control), size, regularPrice,salePrice) inside the LISTVIEW.
    }
}

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Это должно помочь вам начать:

ListViewItem item = new ListViewItem(
    new string[] { barcode.ToString(), id, productName /* etc */ });
listView1.Items.Add(item);
0 голосов
/ 03 декабря 2010

В основном, установите источник элементов вашего списка в пустой список, а затем заполните этот список теми элементами, которые имеют штрих-код ТА, подключите событие textaged текстового поля, чтобы обновить этот список вместо повторного запроса к БД)

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