Выбор базы. Нужен совет по выбору.

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 949
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 26.09.2006 (Вт) 13:26

Вот предполагаемое окошко программы.
Изображение

Как сделать, чтоб при клике на букву выскакивала картинка в левом нижнем углу? При помощи использования MDB.
Я просто не пойму, как реализовать следующее, допустим юзер выбрал букву "А", то как сделать, чтоб соответсвующая картинка из базы отобразилась на форме?

FAER
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 22.04.2006 (Сб) 22:56
Откуда: Россия

Сообщение FAER » 26.09.2006 (Вт) 13:35

А картинка на заданную букву одна или их несколько будет?

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 26.09.2006 (Вт) 15:17

kibernetics
Привет.
Не совсем понял что ты хочешь, но поробую помочь.
Если под MDB ты имел в виду базу в Access?
то это будет примерно так:
-создаш там базу данных в которой будет таблица с картинками;
-потом в студии создаешь проект с такой формой;
-в проекте создаешь соединение с базой;
-как создано соединение, то можно писать код события клик для каждой кнопки.

Да не забудь указать DataBindings свойство пикчербокса.

Код: Выделить всё
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace TestPhotoDb
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       # region declaration
        private OleDbConnection con = new OleDbConnection();
        private OleDbCommand cmd = new OleDbCommand();
        private OleDbDataAdapter da = new OleDbDataAdapter();
        private DataSet ds = new DataSet();
        private CurrencyManager cm; // обрабатывает данный record
        private long pos;
       #endregion
        private void Form1_Load(object sender, EventArgs e)
        {
            con.ConnectionString = @"provider=Microsoft.Jet.oledb.4.0;" +
                @"data source=D:\vti\Margo\testPhoto.mdb"; //testPhoto.mdb имя файла базы данных
            cmd.CommandText = "select * from MyPhoto"; // MyPhoto имя таблицы с фографиями в базе данных
            cmd.Connection = con;
            da = new OleDbDataAdapter(cmd);
            da.Fill(ds, "MyPhoto");             
            verbinden();
        }
        private void verbinden()
        {
            cm=(CurrencyManager)this.BindingContext[ds,"MyPhoto"];
                     
            picFoto.DataBindings.Add("image", ds, "MyPhoto.photo", true);
           
        }
       
        private void btnA_Click(object sender, EventArgs e)
        {
            cm.Position = 0;
        }

        private void btnB_Click(object sender, EventArgs e)
        {
            cm.Position =1;
        }
        // ну и так далее для каждой кнопки
    }
}

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.09.2006 (Вт) 15:20

Thomas, ты читать умеешь?
Какое отношение C#+ADO.NET имеет к обсуждаемой теме?
Lasciate ogni speranza, voi ch'entrate.

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 26.09.2006 (Вт) 15:29

alibek
Приветствую.
Я просто ответил на вопрос
Как сделать, чтоб при клике на букву выскакивала картинка в левом нижнем углу? При помощи использования MDB.
Я просто не пойму, как реализовать следующее, допустим юзер выбрал букву "А", то как сделать, чтоб соответсвующая картинка из базы отобразилась на форме?


Если я влез "не в тему", то удалите моё сообщение и извините. :oops:

ЗЫ а код можно и в VB.NET написать, особой роли не играет.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 26.09.2006 (Вт) 16:53

kibernetics писал(а):2. Потом в редактировании таблицы делаю "Вставка ->Объект"


Не... Лучше вообще без "Вставки объектов". Хранить рисунки как OLE это больше для лентяев или неопытных, ибо их размер при этом дюже большой будет.

Считываешь файл рисунка в байтовый массив.
Этот массив с помощью AppendChunk сохраняешь в поле таблицы. При этом поле таблицы будет иметь размер столько же сколько и твой jpg-файл (в отличии от объекта OLE).

Для вывода рисунка - считываешь поле в байтовый массив и отображаешь его в Picture примерно так:

http://bbs.vbstreets.ru/viewtopic.php?p=6599201&sid=8e25a0fd65461df50d19498ccd9cdc61
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 949
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 27.09.2006 (Ср) 9:45

FAER писал(а):А картинка на заданную букву одна или их несколько будет?


Одна. Одна буква - одна картинка. Чисто придумать алгоритм отображения. Не мастер придумывать сверхуникальные алгоритмы, но думаю, может так:

Если нажата а, то:
а = id1
id1 имеет в одном из полей OLE объект,
и этот объект вставляется в нужное место на форме.
Но вот сам релиз. Реализация тобишь. Как бы её забацать.
Классная всё-таки эта вещь - Акцесс.

Thomas
я пробовал этот .NET, но скажу честно, выбор всё же оставляю за старым добрым VB 6.0

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 949
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 27.09.2006 (Ср) 19:22

Andrey Fedorov
скажите, а это: http://support.microsoft.com/default.as ... -us;285820 похоже на "нормальную" работу вставки рисунков?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.09.2006 (Чт) 7:32

kibernetics писал(а):Andrey Fedorov
скажите, а это: http://support.microsoft.com/default.as ... -us;285820 похоже на "нормальную" работу вставки рисунков?


Вообще-то там в базе только пути хранятся, как я понимаю - особо код я не смотрел...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Пред.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList