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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление записей в таблицу 
:(
    Опции темы
Vitkaz
  Дата 3.4.2009, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 А если использовать параметизированные запросы, как KelTron посоветовал, нужно ли производить преобразования типов ?
PM MAIL   Вверх
Idsa
Дата 3.4.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Vitkaz, провайдеры обычно умные, поэтому реализуют приведение типов... но, конечно, в разумных пределах.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Vitkaz
Дата 3.4.2009, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



С добавлением всё получилось. Скажите пожалуйста, а как сделать refresh т.е. чтобы внесенные изменения отобразились в Grid`е после добавления ? Попробовал делать, как ранее делал в FoxPro: this.dataGridView1.Refresh();, но что-то не получается.  
PM MAIL   Вверх
KelTron
Дата 4.4.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Vitkaz, метод Refresh() заставляет грид перерисовать себя )

Как делать обновление грида зависит от того как ты биндишь к нему данные.

Могу предположить, что в твоём случае подойдёт такой код:

Код

private void button1_Click(object sender, EventArgs e)
{
   //...
   // Здесь мы добавили данные в таблицу
   //...

   // Теперь обновляем грид
    this.dataGridView.DataSource = GetTableData(connStr);
}

private DataTable GetTableData(string connStr) 
{
    string queryString = "SELECT * FROM [Table]";

    SqlConnection conn = new SqlConnection(connStr);
    SqlDataAdapter adapter = new SqlDataAdapter(queryString, conn);
    DataTable table = new DataTable();
    adapter.Fill(table);

    return table;
}






--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Vitkaz
Дата 4.4.2009, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



На форме есть кнопки "Сохранить изменения" и "Удалить клиента", скажите пожалуйста:
1)Как после внесения изменений  в сетке Grid и кликнув соответствующую кнопку, сохранить эти изменения в БД. 
2)Как, выбрав строку в Grid`е и ---||---||---, удалить соответствующую запись из БД.
Данные принадлежат одной таблице. Если нетрудно, скажите как проделать тоже самое, когда данные принадлежат нескольким таблицам.

Надоел наверное с вопросами, понимаю что во многом можно разобраться самому, просто время ограничено. После сдачи сессии думаю заняться изучением .NET более полно.



Это сообщение отредактировал(а) Vitkaz - 6.4.2009, 23:44
PM MAIL   Вверх
Vitkaz
Дата 12.4.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 Не стал создавать новую тему. Возникла следующая проблема: мне нужно сделать запрос и результат этого запроса добавить в таблицу. Я решил посмотреть содержимое запроса, поместив результат в TextBox, но при выполнении ругается на строку  textBox13.Text = reader[0].ToString();  "Недопустимая попытка чтения при отсутствии данных."
Код

  string connectionString = "Data Source=HP\\SQLEXPRESS;Initial Catalog=Database;Integrated Security=True";
         using (SqlConnection Connection = new SqlConnection(
                       connectionString))
            {
                SqlCommand command = new SqlCommand("SELECT DISTINCT MinSumma ,MinSummaDop AS 'Минимальная сумма доп. взноса',Srok AS 'Срок вклада',PercentRate AS 'Прцентная ставка' FROM Rate,ListContrib,Currency WHERE NameVklad=@NameVklad AND NameFull=@NameFull AND Rate.KodVklad=ListContrib.KodVklad AND Rate.KodCur=Currency.KodCur", Connection);
                command.Parameters.AddWithValue("@NameVklad", comboBox3.Text);
                command.Parameters.AddWithValue("@NameFull", comboBox1.Text);
                Connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                
                textBox13.Text = reader[0].ToString(); 
                Connection.Close();
                {
                    
                    reader.Close();
                }
            }

Пробую выводить этот запрос в Grid, все нормально. Подскажите пожалуйста, что не так.
PM MAIL   Вверх
KelTron
Дата 13.4.2009, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Перед чтением данных из датаридера нужно вызвать метод Read

Код

SqlDataReader reader = command.ExecuteReader();
 
if (reader.Read()) // Если в ридере есть какие нить данные то Read вернёт true
{               
        textBox13.Text = reader[0].ToString();
}


если у тебя в результате возвращается множество записей то их все нужно читать в цикле:

Код

 
while (reader.Read()) 
{               
        //читаем данные...
}


Это сообщение отредактировал(а) KelTron - 13.4.2009, 06:58


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Vitkaz
Дата 13.4.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Понял. Спасибо!  smile 

PM MAIL   Вверх
Vitkaz
Дата 26.4.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Заполняю Combobox, который зависит от выбранной строки в другом Combobox`е . Вот фрагмент кода.
Код

SqlDataReader readKodVklad = comKodVklad.ExecuteReader();
                while (readKodVklad.Read())
                {
                    comboBox8.Items.Add(readKodVklad[0].ToString()); 
                }
                
                {readKodVklad.Close();
                }

Подскажите, как перед заполнением Combobox`а очистить его содержимое.

Это сообщение отредактировал(а) Vitkaz - 26.4.2009, 15:00
PM MAIL   Вверх
Vitkaz
Дата 26.4.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Vitkaz @ 26.4.2009,  14:55)
Заполняю Combobox, который зависит от выбранной строки в другом Combobox`е . Вот фрагмент кода.
Код

SqlDataReader readKodVklad = comKodVklad.ExecuteReader();
                while (readKodVklad.Read())
                {
                    comboBox8.Items.Add(readKodVklad[0].ToString()); 
                }
                
                {readKodVklad.Close();
                }

Подскажите, как перед заполнением Combobox`а очистить его содержимое.

Уже нашел comboBox8.Items.Clear();
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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