John Daid Ответов: 2

Я хочу вывести сумму price coloum SQL в C# с помощью класса и формы


Я создаю систему управления магазином с помощью базы данных sql server, и я помещаю продукты с помощью формы cashout, и я хочу напечатать сумму всех продуктов в текстовом поле, затем я устанавливаю оператор sum в sql, и их coloum name bill-это сумма, и теперь я хочу отправить сумму продуктов из класса в форму. но есть ошибка не может неявно преобразовать тип "float" в "System.Data.DataTable". пожалуйста, помогите мне начать. мне нужен срочный ответ.

Что я уже пробовал:

public DataTable slectbill()
        {

            string query = "select sum(subTotal) as bill from Cashout";

            SqlDataAdapter adapt = new SqlDataAdapter(query, connection());

            openConnection();
            DataTable dt = new DataTable();
            DataRow row = dt.Rows[0];
            bill = row["bill"].ToString();
            adapt.Fill(dt);
            closeConnection();

            return bill;
        }

2 Ответов

Рейтинг:
2

Garth J Lancaster

"я начинающий" - хорошо
"я хочу срочного ответа" - не ок - люди на этом сайте являются добровольцами, т. е. не получают зарплату - мы не ваши слуги - предлагаю вам научиться некоторым манерам

Я не понимаю, почему вы усложняете вещи с помощью datatable - вы, кажется, хотите получить простой десятичный (денежный) результат обратно, так что с моей головы, не было бы что-то вроде этого

public Decimal slectbill(string connString)
{
    Decimal bill = 0;
    string query = "select sum(subTotal) as bill from Cashout";

    using (SqlConnection conn = new SqlConnection(connString))
    {
        SqlCommand cmd = new SqlCommand(sql, conn);
        try
        {
            conn.Open();
            bill = (Decimal)cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
    return bill;
}
сделать больше/лучше смысла ?


Рейтинг:
0

lightindark7007

Если вы хотите получить одно значение из запроса ADO то это так не подходит для использования

SqlDataAdapter
предпочитать использование SQLCommand с вызовом скалярного значения
sqlCommand.ExecuteScalar()