ИМЕЕТСЯ
База данных в Ексель
База данных строки - 10 000 шт;
столбцы - 10 шт;
ВОПРОС
1. Каким способом оптимально извлечь из Ексель данные по двум условиям в три разные datagridview ?
2. Извлекаются следующие столбцы таблицы:
- ID
- наименование
- кол
3. Таблица извлекается с заголовками столбцов (по возможности);
КОДusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection connection = new OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=NO\";", textBox1.Text));
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [Лист1$]", connection);
OleDbDataReader reader = command.ExecuteReader();
dataGridView1.Columns.Add("1", "1");
dataGridView2.Columns.Add("1", "1");
dataGridView3.Columns.Add("1", "1");
while (reader.Read())
{
if (reader[0].ToString() == textBox2.Text)
{
if (Convert.ToInt32(reader[1]) > 10 && Convert.ToInt32(reader[1]) < 14) dataGridView1.Rows.Add(reader[1].ToString());
if (Convert.ToInt32(reader[1]) > 20 && Convert.ToInt32(reader[1]) < 24) dataGridView2.Rows.Add(reader[1].ToString());
if (Convert.ToInt32(reader[1]) > 30 && Convert.ToInt32(reader[1]) < 34) dataGridView3.Rows.Add(reader[1].ToString());
}
}
connection.Dispose();
}
private void textBox1_DoubleClick(object sender, EventArgs e)
{
openFileDialog1.Filter = "Excel 2003(*.xls)|*.xls|Excel 2007(*.xlsx)|*.xlsx";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
}
}
СЦЕНАРИЙ
1. Вносим ID задания.
2. Вносим путь к файлу.
3. Нажимаем кнопку "ИЗВЛЕЧЬ".
4. Данные извлекаются в зависимости от "ID" и "порядковый номер" в соответствующую datagridview.
ПРИЛОЖЕНИЕ
1. Проект.
http://файлообменник.рф/w52ue994qlc1.html
2. Скрин