Member 9983063 Ответов: 2

Как получить значение набора данных в текстовом поле по таймеру в C#


Привет, Ребята ! у меня есть проблема, я надеюсь, что вы мне поможете
я хочу отобразить значение набора данных в текстовом поле здесь я использую код
пожалуйста, проверьте это
private void timer2_Tick(object sender, EventArgs e)
        {
            string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Restaurant.accdb;Persist Security Info=False;";
            //string query = "SELECT [Column3] As [Table No],SUM(Column1) As Price,[Receipt No],Date From Total Group By [Column3],[Receipt No],Date";
            //string query = "Select Column3 As [Table No],SUM(Column1) As [Price],[Receipt No],Date FROM Total GROUP BY [Column3],[Receipt No],Date";
            string query = "Select Report From Total";
            using (OleDbConnection conn = new OleDbConnection(connStr))
            {
                using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn))
                {
                    conn.Open();
                    DataSet ds = new DataSet();
                    if (ds != null)
                    {
                        adapter.Fill(ds);
                        textBox63.Text = ds.Tables[0].ToString();
                        conn.Close();
                        if (dataGridView1.Rows.Count == 1)
                        {
                            MessageBox.Show("Data is Empty", "RETURN FORM", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            this.Close();
                        }
                        else
                        {
                         //   textBox63.Text = ds.Tables[0].ToString();
                        }
                    }
                }
            }

выходите и дайте мне лучшее решение этой проблемы

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

частная timer2_Tick недействительным(объект отправителя, EventArgs в электронной)
{
строки string connStr = @"поставщика=Майкрософт.Туз.Oledb для.12.0;Источник Данных=Д: Ресторан\.# то#; сохранять сведения о безопасности=false в;";
string query = " Select Sum (Report) From Total";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
используя (объект oledbdataadapter переходник = новый объект oledbdataadapter(запрос, соед))
{
Коннектикут.Открыть();
DataSet ds = новый набор данных();
if (ds != null)
{
адаптер.Заполнить(ДС);
textBox63.Текст = ДС.Таблицы[0].Метод toString();
Коннектикут.Закрывать();
}
}
}

BillWoodruff

Вам нужно получить большую часть этого кода вне события Тика таймера, а затем выполнить запрос только в событии Тика.

Member 9983063

что такое тиковое событие?

ZurdoDev

1. ответьте на комментарий так, чтобы пользователь был уведомлен, а не добавлял новый комментарий к вашему собственному вопросу.
2. Какой у вас вопрос?

2 Ответов

Рейтинг:
2

RossMW

Несколько советов.

1. Как сказал Билл, не помещайте код поиска данных в Таймер
события, но поместите его в отдельный метод.

2. Убедитесь, что таймер отключен после его запуска, иначе код будет перезапускаться с каждым интервалом таймера (если только это не та функциональность, которая вам нужна)

3.

textBox63.Text = ds.Tables[0].ToString();
Сержант.Tables [)]. Tostring () пытается вернуть строку таблиц, а не значение строки. Использовать ДС.Таблицы[0]. Строки[0] ["Отчет"].ToString() для получения значения отчета

4. Найдите учебник по этому предмету и следуйте примерам, которые они используют.


Рейтинг:
1

Echospider

Если вы хотите отобразить значение определенного столбца, то вы должны использовать

textBox63.Text = ds.Tables[0].Rows[0]["ColumnName"].ToString();


ОПЕРАЦИОННАЯ

textBox63.Text = ds.Tables[0].Rows[0][ColumnIndex].ToString();