Бд В С#

  • Автор темы alekca2292
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

alekca2292

#1
ребят,. предупреждаю сразу я не ас...

Код:
//Адресс БД
string conn = "Data Source=apteka.sdf";
//Переменная, создающая команду, которая посылается в БД и там Выполняется
SqlCeCommand command;
//Создание подключения к БД
SqlCeConnection sq = new SqlCeConnection(conn);
//Открытие Подключения
sq.Open();

if (kurs.ind == 0)
{
int regnum = Convert.ToInt16(textBox1.Text);
int kolvo = Convert.ToInt16(textBox2.Text);
DateTime datazak = DateTime.Now;
textBox1.Clear();
textBox2.Clear();
//sql запрос в бд, чтобы добаить строчку
string s = "Insert into zakaz values ( 1, " + regnum + ", " + kolvo + ", '" + datazak + 
"');";
//Создание запроса
command = new SqlCeCommand(s, sq);
//Делает необходимые изменения в бд
command.ExecuteReader();
//Перезагрузка табличных данных, чтобы в вашей DataGridView были обновленные данные
this.zakazTableAdapter.Fill(this.aptekaDataSet.zakaz);
zakazTableAdapter.Update(aptekaDataSet);
}
sq.Close();
в DataSet записывает а в БД не сохраняет, что я не то сделала?
заранее спасибо
 

LuMee

Well-known member
02.05.2006
477
0
#2
Может, стоит вместо ExecuteReader вызывать у command'а метод ExecuteNonQuery?
И да, не следует так собирать запросы, лучше передавать значения через параметры команды.
 

LuMee

Well-known member
02.05.2006
477
0
#4
Можете приаттачить проект вместе с базой? Поглядим вживую.
 

LuMee

Well-known member
02.05.2006
477
0
#6
Смотрю, уже решили делать все через TableAdapter. В этом случае для новых строк настоятельно рекомендуется вызывать AcceptChanges, чтобы сохранить внесенные изменения. Ну и раз уж вы пользуетесь типизированным датасетом, лучше использовать созданные в нем классы строк и таблиц вместо обычных DataRow и DataTable.
В общем, у меня работает такой код:
Код:
if (kurs.ind == 0)
{
DataRow[] row = aptekaDataSet.Tables["sklad"].Select("regnum =" + Convert.ToInt16(textBox1.Text));
if (row.Count() == 0)
{
DialogResult res1 = MessageBox.Show("Такого лекарства нет на складе ", "Что-то не то",
MessageBoxButtons.OK,
MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
else
{
var r = aptekaDataSet.zakaz.NewzakazRow();
r.numatp = 2;
r.regnum = Convert.ToInt16(textBox1.Text);
r.kolvo = Convert.ToInt16(textBox2.Text);
r.datazak = DateTime.Today;
r.AcceptChanges();

aptekaDataSet.zakaz.AddzakazRow(r);					
aptekaDataSet.zakaz.AcceptChanges();
this.zakazTableAdapter.Update(aptekaDataSet.zakaz);

this.Validate();
this.zakazBindingSource.EndEdit();					
}	
// ну и что там было дальше...
 
Статус
Закрыто для дальнейших ответов.