Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменять базу данных через DatagridView на c#, изменение базы данных через datagridview 
:(
    Опции темы
ucer
Дата 24.5.2010, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2010

Репутация: нет
Всего: нет



создал подключение к базе и отобразил ее на datagridview, все работает, но когда при запуске программы изменяю данные  отдельных ячеек datagridview, изменения  не передаются в базу. Я использую базу данных access  и соединение oledb. Спасибо заранее
PM MAIL   Вверх
Выхухоль
Дата 24.5.2010, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 9.10.2008
Где: Ташкент

Репутация: нет
Всего: 2



Цитата(ucer @  24.5.2010,  10:18 Найти цитируемый пост)
создал подключение к базе и отобразил ее на datagridview, все работает, но когда при запуске программы изменяю данные  отдельных ячеек datagridview, изменения  не передаются в базу. Я использую базу данных access  и соединение oledb. Спасибо заранее 


В таблицу данные заливаешь, или в датасет? Напиши код, посмотрим в чем может быть прикол!
PM MAIL ICQ   Вверх
ucer
Дата 24.5.2010, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2010

Репутация: нет
Всего: нет



Это код подключения к базе, все работает и в гриде отображается, но при изменении полей грида поля базы не меняются, если есть решение напишите!!!!
Код

private void Form1_Load(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test/test.mdb");
            OleDbCommand com = new OleDbCommand();
            OleDbDataAdapter adap = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            com.Connection = conn;
            com.CommandText = "Select * from test";
            conn.Open();
            adap.SelectCommand = com;
            adap.Fill(ds);
            dt = ds.Tables[0];
            dataGridView1.DataSource = dt;
            conn.Close();
        }

PM MAIL   Вверх
Выхухоль
Дата 25.5.2010, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 9.10.2008
Где: Ташкент

Репутация: нет
Всего: 2



Ситуация проста до безумия...
Код

OleDbDataAdapter adap = new OleDbDataAdapter();

DataTable dt = new DataTable();

вот это дело делаешь глобальным, так чтоб в других функциях тоже видно было..


На форму рядом с гридом кидаешь кнопочку, пишешь на ней текст Save а в ее обработчике событий пишеш след. ерундень:

Код

adap.Update(dt);


и по идее все должно быть пучком!

Это сообщение отредактировал(а) Выхухоль - 25.5.2010, 09:20
PM MAIL ICQ   Вверх
ucer
Дата 25.5.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2010

Репутация: нет
Всего: нет



Код


        OleDbConnection conn=new OleDbConnection();
        OleDbCommand com=new OleDbCommand();
        OleDbDataAdapter adap=new OleDbDataAdapter();
        DataSet ds=new DataSet();
        DataTable dt=new DataTable();


        private void Form1_Load(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test/test.mdb");
            OleDbCommand com = new OleDbCommand();
            OleDbDataAdapter adap = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            com.Connection = conn;
            com.CommandText = "Select * from test";
            conn.Open();
            adap.SelectCommand = com;
            adap.Fill(ds);
            dt = ds.Tables[0];
            dataGridView1.DataSource = dt;
            conn.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            adap.Update(dt);
            
        }


Написал этот код все рано не помогает, если не трудно напишите свой код
PM MAIL   Вверх
mrbrooks
Дата 25.5.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 5
Всего: 306



Цитата(Выхухоль @  25.5.2010,  10:19 Найти цитируемый пост)
и по идее все должно быть пучком!

а вот не факт. 
по логике вещей если уж обновляем через адаптер, то для начала бы надо заюзать SqlDataAdapter.UpdateCommand
а уже затем SqlDataAdapter.Update
PM MAIL   Вверх
Выхухоль
Дата 25.5.2010, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 9.10.2008
Где: Ташкент

Репутация: нет
Всего: 2



Цитата(mrbrooks @  25.5.2010,  13:54 Найти цитируемый пост)
а вот не факт. 
по логике вещей если уж обновляем через адаптер, то для начала бы надо заюзать SqlDataAdapter.UpdateCommand
а уже затем SqlDataAdapter.Update 

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


Цитата(ucer @  25.5.2010,  12:42 Найти цитируемый пост)
Написал этот код все рано не помогает, если не трудно напишите свой код 


получай код формы:
Код

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        OleDbDataAdapter adap = null;
        DataSet ds = new DataSet();

        private void Form1_Load(object sender, EventArgs e)
        {
            adap = new OleDbDataAdapter("Select * from test", new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/test/test.mdb"));
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.UpdateCommand = bulder.GetUpdateCommand();
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.DeleteCommand = bulder.GetDeleteCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }

        private void button1_Click(object sender, EventArgs e)
        {
            adap.Update(ds.Tables[0]);
        }

        
    }


советую почитать тему по этой ссылке:
MSDN Data Adapter

Это сообщение отредактировал(а) Выхухоль - 25.5.2010, 15:31
PM MAIL ICQ   Вверх
mrbrooks
Дата 25.5.2010, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 5
Всего: 306



Цитата(Выхухоль @  25.5.2010,  16:26 Найти цитируемый пост)
уважаемый, я вам советую в случае знания правельного ответа писать его в тему (чтобы было понятно автору поста), а не открывать дисскусии на тему "а вот и не факт"

уважаемый давайте не будем давать советов. 
здесь никто ничем друг другу не обязан.
и никто никаких дисскуссий не открывает. я указал вам на не точность. вот и все. а мог бы и вообще забить. smile
PM MAIL   Вверх
ucer
Дата 25.5.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2010

Репутация: нет
Всего: нет



запустил код который вы написали выдает такую ошибку на строке
Код
adap.UpdateCommand = bulder.GetUpdateCommand();

Код

Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.

PM MAIL   Вверх
mrbrooks
Дата 26.5.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 5
Всего: 306



ucer, ключевое поле в таблице test есть?
PM MAIL   Вверх
ucer
Дата 27.5.2010, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.5.2010

Репутация: нет
Всего: нет



спасибо вам большое мужики, я забыл поставить ключевое поле, вот почему генерировалась ошибка!!!

Это сообщение отредактировал(а) ucer - 27.5.2010, 06:53
PM MAIL   Вверх
Kateyr
Дата 9.6.2010, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



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

adap.Update(ds.Tables[0]);

Ln 35: Ошибка синтаксиса (пропущен оператор) в выражении запроса '((id = ?) AND ((? = 1 AND tel IS NULL) OR (tel = ?)) AND ((? = 1 AND all IS NULL) OR (all = ?)))'.

вот код запросов после выбивания ошибки:

INSERT INTO Таблица1 (id, tel, all) VALUES (?, ?, ?)

UPDATE Таблица1 SET tel = ? WHERE ((id = ?) AND ((? = 1 AND tel IS NULL) OR (tel = ?)) AND ((? = 1 AND all IS NULL) OR (all = ?)))

DELETE FROM Таблица1 WHERE ((id = ?) AND ((? = 1 AND tel IS NULL) OR (tel = ?)) AND ((? = 1 AND all IS NULL) OR (all = ?)))


Если добавляю новую запись через датагрид, то выдает ошибку:

adap.Update(ds.Tables[0]);

Ln 35: Ошибка синтаксиса в инструкции INSERT INTO.



кидаю свой код:

Код


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 WindowsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        OleDbDataAdapter adap = null;
        DataSet ds = new DataSet();

        private void Form1_Load(object sender, EventArgs e)
        {
            adap = new OleDbDataAdapter("Select * from [Таблица1]", new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"схема данных.mdb"));
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.UpdateCommand = bulder.GetUpdateCommand();
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.DeleteCommand = bulder.GetDeleteCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            adap.Update(ds.Tables[0]);
        }
    }
}




вот архив проекта: http://files.mail.ru/1RU5GM

Помогите плиз, нужно очень срочно!!!
Второй день ищю метод обновления БД через датагрид...




Присоединённый файл ( Кол-во скачиваний: 54 )
Присоединённый файл  WindowsApplication6.rar 170,72 Kb
PM MAIL   Вверх
Выхухоль
Дата 10.6.2010, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 9.10.2008
Где: Ташкент

Репутация: нет
Всего: 2



вся проблема заключается в русском названии таблицы "Таблица1"...поменяй name in DB and all will fine...
в общем привыкай писать все на английском, забывай русских если хочешь программировать...


к примеру вот так твой код у меня работает прекрасно..
Код

public Form1()
        {
            InitializeComponent();
        }

        OleDbDataAdapter adap = null;
        DataSet ds = new DataSet();

        private void Form1_Load(object sender, EventArgs e)
        {
            adap = new OleDbDataAdapter("Select * from Alex_Table", new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"схема данных.mdb"));
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.UpdateCommand = bulder.GetUpdateCommand();
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.DeleteCommand = bulder.GetDeleteCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            adap.Update(ds.Tables[0]);
        }


заметил название я поменял? действуй...
PM MAIL ICQ   Вверх
Kateyr
Дата 10.6.2010, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



исправил. Ошибки теже... если не сложно авторизуйте меня в аське 577746132
PM MAIL   Вверх
Kateyr
Дата 14.6.2010, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



решил проблему. вот код:

Код

 private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
             int index1 = dataGridView1.CurrentRow.Index;
             int id = Convert.ToInt32(dataGridView1[0, index1].Value);
             string name_k = dataGridView1[1, index1].Value.ToString();
              int cost_per = Convert.ToInt32(dataGridView1[2, index1].Value);

                            
              con.Open();
              OleDbCommand refresh = new OleDbCommand("UPDATE [Таблица кампаний] SET [Таблица кампаний].id = " + id + ", [Таблица кампаний].[Название организации] = '" + Convert.ToString(name_k) + "', [Таблица кампаний].[Цена] = '" + cost_per + "' WHERE [Таблица кампаний].id = " + id_n + "", con);
              OleDbDataReader read = refresh.ExecuteReader();
              con.Close();
 
              dataGridView1.Refresh();

        }
 private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            y = dataGridView1.CurrentCellAddress.Y;
            x = dataGridView1.CurrentCellAddress.X;
            str = dataGridView1[x, y].Value.ToString();
            switch (table_tip)
            {
                    
                         if (dataGridView1[0, y].Value.ToString() != "")
                            {
                                id_n = Convert.ToInt32(dataGridView1[0, y].Value);
                            }

                            if (str == "")
                            {
                                if ((dataGridView1.CurrentCellAddress.X) == 0)
                                {

                                    con.Open();
                                    OleDbCommand max_id = new OleDbCommand("SELECT Max ([Таблица кампаний.id]) FROM [Таблица кампаний]", con);
                                    OleDbDataReader read_max_id = max_id.ExecuteReader();
                                    while (read_max_id.Read())
                                    {
                                        id_n = Convert.ToInt32(read_max_id[0].ToString()) + 1;
                                    }

                                    dataGridView1[dataGridView1.CurrentCellAddress.X, y].Value = id_n;

                                    OleDbCommand max_id22 = new OleDbCommand("INSERT into [Таблица кампаний] (id) values (" + id_n + ")", con);
                                    OleDbDataReader read_max_id22 = max_id22.ExecuteReader();
                                    con.Close();


                                    dataGridView1.Refresh();
                                }
                                    



проект прилагается. 

Присоединённый файл ( Кол-во скачиваний: 308 )
Присоединённый файл  Project_Test.rar 174,49 Kb
PM MAIL   Вверх
joler95
Дата 26.1.2011, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.1.2011

Репутация: нет
Всего: нет



Подскажите пожалуйста по данному коду:

Код

public Form1()
        {
            InitializeComponent();
        }

        OleDbDataAdapter adap = null;
        DataSet ds = new DataSet();

        private void Form1_Load(object sender, EventArgs e)
        {
            adap = new OleDbDataAdapter("Select * from Alex_Table", new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"схема данных.mdb"));
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.UpdateCommand = bulder.GetUpdateCommand();
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.DeleteCommand = bulder.GetDeleteCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            adap.Update(ds.Tables[0]);
        }



После  его выполнения пытаюсь по нажатию кнопки в datagridview пытаюсь встваить новую строку
Код

        private void button9_Click(object sender, EventArgs e)
        {
            dataGrid1.Rows.Insert(0, 1);
           
        }

но вылетает ошибка

Подскажите как можно в datagridview вствить новую строку, чтоб затем заполнить ее данными??
PM MAIL   Вверх
joler95
Дата 26.1.2011, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.1.2011

Репутация: нет
Всего: нет



Кому интересно Добавить надо в Table[0]

Это сообщение отредактировал(а) joler95 - 27.1.2011, 10:40
PM MAIL   Вверх
jonie
Дата 27.1.2011, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



joler95, я даже скажу что вы подходите к коню не с той стороны. Надо подходить со стороны ДАННЫХ , а не их ОТОБРАЖЕНИЯ. Дело в том, что данные (в данном случае DataView (или как-то так)) , реализуют INotifyPropertyChanged интфрейс, и вид (в данном случае грид) подписывается на изменения данных. Соответственно оперировать всегда (так принято, черт возьми)  с данными, а не с видом (!).   И в общем жто всегда надо учитывать..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
jonkaspar2008
Дата 16.3.2012, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.3.2012

Репутация: нет
Всего: нет



запускаю код  от  "Выхухоль" работает без ошибок
но в БД (в самом файле access) никаких изменений не происходит

в чем может быть причина?
PM MAIL   Вверх
wesadex
Дата 19.11.2014, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 21.6.2005

Репутация: нет
Всего: нет



А можно и я пять копеек попрошу. Измаялся гуглить уже и читать форумы.

C#, DataGridView, MSSQL 2005

Вот так заполняю ДатаГридВью:

Код

SqlCommand cmd = null;
            
            Log("Начинается загрузка данных... Пожалуйста подождите!");
            
            string q = "SELECT TOP 400 dbo.art.cod_shop, dbo.art.cod_good, dbo.goods.name_good, dbo.depart.cod_depart, dbo.depart.name_depart, ";
            q += "dbo.[group].cod_group, dbo.[group].name_group, dbo.sub_group.cod_sgroup, dbo.sub_group.name_sgroup, ";
            q += "dbo.goods.cod_assort, dbo.art.margin, dbo.art.happy_hour, dbo.art.block_discount, dbo.art.block_chng_price, ";
            q += "dbo.art.zak_price, dbo.art.retail_price FROM dbo.art LEFT OUTER JOIN dbo.goods ON dbo.goods.cod_good = dbo.art.cod_good ";
            q += "LEFT OUTER JOIN dbo.depart ON dbo.depart.cod_depart = dbo.goods.cod_depart LEFT OUTER JOIN dbo.[group] ON dbo.[group].cod_group = dbo.goods.cod_group ";
            q += "LEFT OUTER JOIN dbo.sub_group ON dbo.sub_group.cod_sgroup = dbo.goods.cod_sgroup ORDER BY dbo.art.cod_good, dbo.art.cod_shop";

            cmd = new SqlCommand(q, slib.conn);

            da = new SqlDataAdapter(cmd);
            cmdBuilder = new SqlCommandBuilder(da);

            da.UpdateCommand = cmdBuilder.GetUpdateCommand(true);

            da.Fill(this.ds);
            dt = ds.Tables[0];
            dgMain.DataSource = dt;
            cmd.Dispose();
            


Вот кнопочка "Сохранить":
Код

        private void btnSave_Click(object sender, EventArgs e)
        {
            da.Update(ds.Tables[0]);
        } 


При попытке запустить, запускается, но вылетает на вот этой строчке: da.UpdateCommand = cmdBuilder.GetUpdateCommand(true); (без параметров тожде пробовал)
Ошибка такая: Dynamic SQL generation is not supported against multiple base tables.

Насколько я понимаю, из-за джойнов код не может автоматически сгенерировать UPDATE запрос из моего не самого простого SELECT'a.

Как с этим бороться?

p.s. DataAdapter, DataSet и DataTable объявлены глобально.
PM MAIL   Вверх
danila777
Дата 22.5.2015, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.5.2015

Репутация: нет
Всего: нет



Здравствуйте. Помогите, пожалуйста, разобраться с программой - данные не сохраняются в б.д. после нажатия на кнопку. Б.д. в access. Все примеры, которые здесь приводили пробовал - не работает. в архиве проект и б.д. посмотрите, пожалуйста.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  55555.ZIP 50,72 Kb
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1933 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.