Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2017, 16:29   #1
SaintsNikolay
 
Аватар для SaintsNikolay
 
Регистрация: 14.10.2017
Сообщений: 9
Печаль Работа c С# и базой данных Access

Здравствуйте уважаемые программисты. Подскажите пожалуйста решение проблемы. Мне нужно сделать, что бы выводились на печать данные ( при нажатии на кнопку). Я сделал, через скрин. Вроде все правильно, но при запуске выдает ошибку.
Ошибка:Не обработанное пользователем исключение: System.ArgumentException: "targetBounds". Строку на которую жалуется: dataGridView1.DrawToBitmap(bmp, dataGridView1.Bounds).
Сам код программы:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Кафедра
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "база_данных_КафедраDataSet.Сотрудники". При необходимости она может быть перемещена или удалена.
            this.сотрудникиTableAdapter.Fill(this.база_данных_КафедраDataSet.Сотрудники);

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.сотрудникиTableAdapter.Update(this.база_данных_КафедраDataSet.Сотрудники);
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
          
        }

        private void button2_Click(object sender, EventArgs e)
        {
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                dataGridView1.CurrentCell = null;
                dataGridView1.Rows[i].Visible = false;
                for (int c = 0; c < dataGridView1.Columns.Count; c++)
                {
                    if (dataGridView1[c, i].Value.ToString() == textBox2.Text)
                    {
                        dataGridView1.Rows[i].Visible = true;
                        break;
                    }
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.сотрудникиTableAdapter.Fill(this.база_данных_КафедраDataSet.Сотрудники);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            printPreviewDialog1.Document = printDocument1;
            printPreviewDialog1.ShowDialog();
        }

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Bitmap bmp = new Bitmap(dataGridView1.Size.Width + 10, dataGridView1.Size.Height + 10);
            dataGridView1.DrawToBitmap(bmp, dataGridView1.Bounds);
            e.Graphics.DrawImage(bmp, 0, 0);
        }
        }
    }

Последний раз редактировалось Аватар; 14.10.2017 в 16:31.
SaintsNikolay вне форума Ответить с цитированием
Старый 15.10.2017, 00:30   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

MSDN пишет:
Цитата:
An T:System.ArgumentException might be thrown for large bitmaps. The maximum allowable size varies by machine.
Может, оно?

Кстати, большинство источников рекомендует
Код:
dataGridView1.DrawToBitmap(bmp, new Rectangle(0, 0, dataGridView1.Width, dataGridView1.Height));
Black Fregat вне форума Ответить с цитированием
Старый 15.10.2017, 09:40   #3
SaintsNikolay
 
Аватар для SaintsNikolay
 
Регистрация: 14.10.2017
Сообщений: 9
По умолчанию Благодарность.

Спасибо большое. Заработало.
SaintsNikolay вне форума Ответить с цитированием
Старый 16.10.2017, 06:14   #4
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

а как вывести влист бокс отдельные строки столбца из гридвью (datagridview)?
alcatraz_kms вне форума Ответить с цитированием
Старый 17.10.2017, 08:12   #5
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Что ни кто не знает ответа на выше написанный вопрос, вроде форум программистов ...?
alcatraz_kms вне форума Ответить с цитированием
Старый 17.10.2017, 09:20   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от alcatraz_kms Посмотреть сообщение
Что ни кто не знает ответа на выше написанный вопрос, вроде форум программистов ...?
Да все знают просто никому не хочется делать за вас работу.


Вывод строк в листбокс:

Код:
myListBox.Items.AddRange(new object[]{"One", "Two", "Three", "Four", "Five", "Six"});


// или через циклы
string [] myArr = new string[4];

myArr[0] = "One";
myArr[1] = "Two";
myArr[2] = "Three";
myArr[3] = "Four";

myListBox.Items.Clear();

for (int i = 0; i < myArr.Length; i++) {
    myListBox.Items.Add(myArr[i].ToString());
}

Доступ к значениям ячеек грида:

Код:
object val = dgModuleGrid.Rows[ROW_INDEX].Cells[COLUMN_NAME].Value;
Дальше сами собирайте в кучу.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 18.10.2017, 04:47   #7
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Да все знают просто никому не хочется делать за вас работу.


Вывод строк в листбокс:

Код:
myListBox.Items.AddRange(new object[]{"One", "Two", "Three", "Four", "Five", "Six"});


// или через циклы
string [] myArr = new string[4];

myArr[0] = "One";
myArr[1] = "Two";
myArr[2] = "Three";
myArr[3] = "Four";

myListBox.Items.Clear();

for (int i = 0; i < myArr.Length; i++) {
    myListBox.Items.Add(myArr[i].ToString());
}

Доступ к значениям ячеек грида:

Код:
object val = dgModuleGrid.Rows[ROW_INDEX].Cells[COLUMN_NAME].Value;
Дальше сами собирайте в кучу.
А причем тут работа не работа, это форум создан для того, чтобы помогать людям в вопросах по программированию если они, что то не знают и т.п., а не критиковать, если в лом написать пару строк, то зачем критиковать.
alcatraz_kms вне форума Ответить с цитированием
Старый 18.10.2017, 08:44   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от alcatraz_kms Посмотреть сообщение
А причем тут работа не работа, это форум создан для того, чтобы помогать людям в вопросах по программированию если они, что то не знают и т.п., а не критиковать, если в лом написать пару строк, то зачем критиковать.
Прежде чем писать на форум с вопросами типа сколько будет 2+2 необходимо хоть немного ознакомиться с базовой литературой. Погуглить чуток. Попробовать что-то сделать самостоятельно. И если не получается тогда уж написать на форум. Типа вот делаю так то и так то а ничего не выходит.
А иначе получается что-то вроде "Я делать ничего не хочу, читать не хочу - подайте ка мне готовое решение". Это уже не помощь а "сделай за меня".
По вашему вопросу первые ссылки гугла дают уже готовое решение, но вам надо чтобы ктото на блюдечке его вам преподнес.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 18.10.2017, 09:58   #9
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Вопрос в коде :
Код:
public void button1_Click(object sender, EventArgs e)
        {
           String ora = "ORA-"; // если есть в лог файле ошибки ORA
           String exp = "EXP-"; // если есть в лог файле ошибки EXP
           listBox1.Items.Clear();
     /
            // Сбор адресов каталогов и поиск слов
           foreach (DataGridViewRow row in dataGridView1.Rows)
           {
               if (!row.IsNewRow)
               {
                   var cat = row.Cells[2].Value; // значение строк столбца каталог 
                   var directory = new DirectoryInfo(cat.ToString());
                   var files = directory.GetFiles("*.txt");

                   foreach (var f in files)
                   {

                       StreamReader str = new StreamReader( ????????????????  что нужно тут написать????? чтобы начать поиск строк в файлах );
                       
                       
                       while (!str.EndOfStream)
                       {
                           string st = str.ReadLine();
                           if (st.StartsWith(ora) || st.StartsWith(exp))  // поиск ошибок
                           {
                               listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел с ошибками]")));
                               break;
                           }
                           else
                           {
                               listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел успешно]")));
                               break;
                           }
                       }
                   }
               }

           }
           
        }
alcatraz_kms вне форума Ответить с цитированием
Старый 18.10.2017, 11:12   #10
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от alcatraz_kms Посмотреть сообщение
Вопрос в коде :
Код:
                       StreamReader str = new StreamReader( ????????????????  что нужно тут написать????? чтобы начать поиск строк в файлах );

А вот это для кого пишется в среде разработки?
Изображения
Тип файла: jpg 123.jpg (16.2 Кб, 160 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление базой данных Access на Delphi salernitana Фриланс 9 22.07.2015 15:55
Работа с базой данных Access andrey199520 Microsoft Office Access 1 09.04.2014 10:10
Одновременная работа с одной базой данных Access Dux БД в Delphi 6 09.11.2012 10:26
связь делфи с базой данных access q123ser87 Помощь студентам 1 19.05.2012 15:28
Управление Базой Данных Access One.Love БД в Delphi 2 11.10.2008 02:08