|
|
|
Не работает Update, в некоторых местах Insert
|
|||
|---|---|---|---|
|
#18+
Надо сдавать курсовую 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 метров). Уже не знаю, что делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 21:10 |
|
||
|
Не работает Update, в некоторых местах Insert
|
|||
|---|---|---|---|
|
#18+
Вот еще два поиска - один рабочий - тот что пофамили , а тот что по адрессу не рабочий. //поиск абонента по фамилии 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(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 21:27 |
|
||
|
Не работает Update, в некоторых местах Insert
|
|||
|---|---|---|---|
|
#18+
откройте для себя параметры . Никто тут 9-ти этажные запросы курить не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2010, 22:52 |
|
||
|
Не работает Update, в некоторых местах Insert
|
|||
|---|---|---|---|
|
#18+
Знаю, я что такое параметры. Это было в курсовике по предмету Базы Данных. А это предмет ООП, и сказали делать так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2010, 02:25 |
|
||
|
Не работает Update, в некоторых местах Insert
|
|||
|---|---|---|---|
|
#18+
KOHCTAHTNHА это предмет ООП, и сказали делать так.плюньте им в лицо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2010, 05:53 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36662463&tid=1351279]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
103ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 472ms |

| 0 / 0 |
