powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не работает Update, в некоторых местах Insert
6 сообщений из 6, страница 1 из 1
Не работает Update, в некоторых местах Insert
    #36662463
KOHCTAHTNH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо сдавать курсовую 3-4 июня. Горю. Уже 6 бессоных ночей за неделю, но ничего не помгает.
Не знаю либо весь проект скидывать либо как. Вообщем вот что могу сказать. База в акцессе. Программа на си шарпе. Вот не работающее изменение (добавления нет) в таблице траифы. В таблице акцесса траифы есть поля:
Тариф Number (инт)
Категория Text
Тариф_хол_вода Number (дабл)
Тариф_гор_вода Number (дабл)
В приложение скриншот схемы данных XSD, Схема данных в Акцессе. Вот сам запрос. Прсто уже не знаю, что думать, может где, то из - за связей дынных между таблицами или ....


Интерфейс
interface ClassInterfaceTarifi
{
void UpdateTar(int Код_тарифа, string Категория, Double Тариф_хол_вода, Double Тариф_гор_вода);
}


НАследнику итерфейса передаётся
tabl_tar.UpdateTar(Convert.ToInt32(txt_kodtar.Text),txt_kat.Text.ToString(), Convert.ToDouble(txt_hol.Text), Convert.ToDouble(txt_gor.Text));


Наследник Итерфейса, ему всё передаётся.
public void UpdateTar(int Код_тарифа, string Категория, Double Тариф_хол_вода, Double Тариф_гор_вода)
{
con.Open();
try
{
//OleDbCommand UpdCom = new OleDbCommand("Update [тарифы_с_учётом_льгот] SET код_тарифа ='" + Код_тарифа + "'" + ", Категория ='" + Категория + "'" + ", Тариф_хол_вода='" + Тариф_хол_вода + "" + " WHERE код_тарифа=" + Код_тарифа, con);
// OleDbCommand UpdCom = new OleDbCommand(@"UPDATE vodokanal1.тарифы_с_учётом_льгот SET Категория ='" + Категория + "'" + ", Тариф_хол_вода='" + Тариф_хол_вода + "' " + ", Тариф_гор_вода='" +Тариф_гор_вода + "'" + "WHERE код_тарифа =" + Код_тарифа, con);
//OleDbCommand UpdCom = new OleDbCommand(@"UPDATE vodokanal1.тарифы_с_учётом_льгот SET Категория ='" + Категория + "'" + "WHERE Код_тарифа =" + Код_тарифа, con);
// OleDbCommand UpdCom = new OleDbCommand(@"UPDATE vodokanal1.тарифы_с_учётом_льгот SET Категория ='" + Категория + "'" + ", Тариф_хол_вода='" + Тариф_хол_вода + "' " + ", Тариф_гор_вода='" + Тариф_гор_вода + "'", con);

OleDbCommand UpdCom = new OleDbCommand("Update мodokanal1.тарифы_с_учётом_льгот SET Тариф_хол_вода='" + Тариф_хол_вода + "'" + "WHERE Код_тарифа=" + Код_тарифа, con);

//OleDbCommand UpdCom = new OleDbCommand("Update vodokanal1.тарифы_с_учётом_льгот SET Категория='rt', [Тариф_холодная_вода]='56', [Тариф_гор_вода]='66' WHERE Код_тарифа ='4'", con);
if (UpdCom.ExecuteNonQuery() == 1)
{
MessageBox.Show("Обновление прошло успешно", "Обновление", MessageBoxButtons.OK);
DataTable Tar = new DataTable("[тарифы_с_учётом_льгот]");
OleDbDataAdapter datAdapTar = new OleDbDataAdapter("Select * From [тарифы_с_учётом_льгот]", con);
datAdapTar.Fill(Tar);
}
}




Проблема вылазит, когда используется условие. Без него иногда изменяется. Но у меня пять тарифов поэтому без условия никак. В кометариях же перепробованные варианты. Сначала был гемор с зяпятыми.
И ещё ворпрос на миллион. Куда лучше базу кинуть. Сначало базу кидал на Д, потом к ней подрубался, но не работал нормально поиск, т.к. он создавал копию базы в папку бин или релиз, и из неё считал, тогда я все пути в джет провайдере реплэйсом заменил на public static OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"vodokanal1.mdb"); И работало всё. Далее сдру на днях поменял все вхождения на @"D:\vodokanal1.mdb" . дело в том, что не знаю синтаксиса ситтингов[global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\vodokanal1.mdb")] (тут надо правильно постваить всё) И даже не знаю куда на д кинуть или всё таки в папку с прогой. Потом базу из проекта решил удалить Exclude from Project. Короче накуралесил всё. Может куда скинуть весь проект (50 метров). Уже не знаю, что делать.
...
Рейтинг: 0 / 0
Не работает Update, в некоторых местах Insert
    #36662482
KOHCTAHTNH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот еще два поиска - один рабочий - тот что пофамили , а тот что по адрессу не рабочий.

//поиск абонента по фамилии
private void pictureBox2_Click(object sender, EventArgs e)
{
try
{
tabl_abonenti.PoiskAbonFam(textBoxFam.Text);
dataGridPoisc.DataSource = date;
CurrencyManager cm = (CurrencyManager)dataGridPoisc.BindingContext[dataGridPoisc.DataSource];
if (cm.Count == 0)
MessageBox.Show("Абонента с такой фамилией не найдено", "Результат поиска", MessageBoxButtons.OK, MessageBoxIcon.Information);
//старое
//this.abonentiTableAdapter.poiskpofam(vodokanal1DataSet3.Abonenti, textBoxFam.Text);
}
catch
{
MessageBox.Show("Абонента с такой фамилией не найдено", "Результат поиска", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

}



public void PoiskAbonFam(string Фамилия)
{
// con.Open();
DataTable PAFAM = new DataTable("Abonenti");
PAFAM.Rows.Clear();
OleDbDataAdapter datAdapPoiskFam = new OleDbDataAdapter("SELECT * FROM Abonenti Where Фамилия ='" + Фамилия +"'", con);

datAdapPoiskFam.SelectCommand.Connection.Open();
datAdapPoiskFam.SelectCommand.ExecuteNonQuery();
datAdapPoiskFam.SelectCommand.Connection.Close();
datAdapPoiskFam.Fill(PAFAM);
//con.Close();
kursovik.find.date = PAFAM;

}
------------------------------------------------------------------------------------
//поиск абонента по адрессу кнопка
private void button1_Click(object sender, EventArgs e)
{ try
{
tabl_abonenti.PoiskAbonAdress(textBoxG.Text.ToString(), textBoxU.Text.ToString(),Convert.ToInt32(textBoxD.Text), Convert.ToInt32(textBoxK.Text));
dataGridPoisc.DataSource = date;
CurrencyManager cm = (CurrencyManager)dataGridPoisc.BindingContext[dataGridPoisc.DataSource];
if (cm.Count == 0)
MessageBox.Show("Поиск не дал результатов.", "Результат поиска", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
MessageBox.Show("Абонента по такому адресу не найдено", "Результат поиска", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}



public void PoiskAbonAdress(string Город, string Улица, int Номер_дома, int Номер_квартиры)
{
//con.Open();
DataTable PAADRES = new DataTable("Abonenti");
PAADRES.Rows.Clear();
OleDbDataAdapter datAdapPoiskAdress = new OleDbDataAdapter("SELECT * FROM Abonenti WHERE Город ='" + Город + "'" + "OR Улица='" + Улица + "'" + "OR Номер_дома ='" + Номер_дома + "'" + "OR Номер_квартиры='" + Номер_квартиры + "'", con);
datAdapPoiskAdress.SelectCommand.Connection.Open();
datAdapPoiskAdress.SelectCommand.ExecuteNonQuery();
datAdapPoiskAdress.SelectCommand.Connection.Close();
datAdapPoiskAdress.Fill(PAADRES);
kursovik.find.date = PAADRES;
//con.Close();

}
...
Рейтинг: 0 / 0
Не работает Update, в некоторых местах Insert
    #36662607
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
откройте для себя параметры .
Никто тут 9-ти этажные запросы курить не будет.
...
Рейтинг: 0 / 0
Не работает Update, в некоторых местах Insert
    #36662833
KOHCTAHTNH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знаю, я что такое параметры. Это было в курсовике по предмету Базы Данных. А это предмет ООП, и сказали делать так.
...
Рейтинг: 0 / 0
Не работает Update, в некоторых местах Insert
    #36662862
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOHCTAHTNHА это предмет ООП, и сказали делать так.плюньте им в лицо.
...
Рейтинг: 0 / 0
Не работает Update, в некоторых местах Insert
    #36665606
KOHCTAHTNH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,

Вы не поверите, как это хочется сделать.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не работает Update, в некоторых местах Insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]