Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Паганель, двойную ковычку нельзя поставить в строке SQL запроса в asp.net а с еденичной тоже работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:47 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Ваш запрос delete содержит имя поля NREC, не заключенное ни в какие кавычки Он работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:53 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Паганель, он работает точно так же, а как вы предлагаете организовать запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 12:19 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxон работаетзначит, кавычки не нужны предлагаю не обрамлять названия полей кавычками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 12:22 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Паганель, так тот же результат... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 13:17 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
А если использовать ExecuteNonQuery ? (ссылку я давал выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 13:32 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Паганель, я просто через update хочу все реалезовать=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 13:41 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
тогда берите что-то типа http://www.postgresql.org/docs/8.4/interactive/pgstatstatements.html и смотрите, что реально происходит на sql сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 13:46 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
в догонку http://msdn.microsoft.com/en-us/library/33y2221y.aspx When you call the Update method, the DataAdapter analyzes the changes that have been made and executes the appropriate command (INSERT, UPDATE, or DELETE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 13:49 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxПаганель, я просто через update хочу все реалезовать=)Через метод NpgsqlDataAdapter.Update? У Вас это не получится. 1. У Вас в наборе данных (DataSet) нет ни одной изменённой записи; 2. У Вас там вообще записей нет. Именно из-за этого ничего и не происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 14:23 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxpublic DataSet update(int NREC, string Name, string VNum, string Unn, string Adress) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); string sqlcom = "update eee.tab set 'NREC'='@NREC', 'Name'='@name', 'VNum'='@VNum','Unn'='@Unn', " + "'Adress'='@Adress' where 'NREC'=@ONREC;"; string sqlcoms = "select * from eee.tab;"; NpgsqlCommand com = new NpgsqlCommand(sqlcom, conn); NpgsqlCommand coms = new NpgsqlCommand(sqlcoms, conn); NpgsqlDataAdapter da = new NpgsqlDataAdapter(com); DataSet bb = new DataSet(); da.SelectCommand = coms; da.Fill(bb); com.Parameters.Add("@NREC", NpgsqlDbType.Integer, 4/*,"NREC"*/).Value=NREC; com.Parameters.Add("@Name", NpgsqlDbType.Text,50/*,"Name"*/).Value=Name; com.Parameters.Add("@VNum", NpgsqlDbType.Text,50/*,"VNum"*/).Value=VNum; com.Parameters.Add("@Unn", NpgsqlDbType.Text,50/*,"Unn"*/).Value=Unn; com.Parameters.Add("@Adress", NpgsqlDbType.Text,50/*,"Adress"*/).Value=Adress; NpgsqlParameter param = com.Parameters.Add("@ONREC", NpgsqlDbType.Integer, 4, "NREC"); param.SourceVersion = DataRowVersion.Original; da.UpdateCommand = com; da.Update(bb); return bb; } код метода update ошибок не выдает, но и не обновляет, в таблице остается то же значение что и было. Подскажите пожалуйста в чем может быть проблема.Судя по Вашему коду Вы вообще не понимаете, что он делает. Может Вам книжку какую для начала почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 14:27 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
skyANAxCyMPaKxПаганель, я просто через update хочу все реалезовать=)Через метод NpgsqlDataAdapter.Update? У Вас это не получится. 1. У Вас в наборе данных (DataSet) нет ни одной изменённой записи; 2. У Вас там вообще записей нет. Именно из-за этого ничего и не происходит. Хотя нет, записи есть, только сейчас заметил текст запроса sqlcoms . Но так как записи эти не меняются, то и NpgsqlDataAdapter не вызывает для них команду для сохранения изменений в БД. Зачем сохранять изменения, которых нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 15:04 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
По идее метод должен быть таким: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 15:09 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
skyANA, прописал так public int update(int NREC, string Name, string VNum, string Unn, string Adress) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); //string sqlcom = "update eee.tab set NREC=@NREC, Name=@name, VNum=@VNum,Unn=@Unn, " // + "Adress=@Adress where NREC=@ONREC;"; NpgsqlCommand com = new NpgsqlCommand(@"update eee.tab set NREC=@NREC, Name=@name, VNum=@VNum,Unn=@Unn, " + "Adress=@Adress where NREC=@ONREC;", conn); com.Parameters.Add("@NREC", NpgsqlDbType.Integer, 4, "NREC"); com.Parameters.Add("@Name", NpgsqlDbType.Text, 50, "Name"); com.Parameters.Add("@VNum", NpgsqlDbType.Text, 50, "VNum"); com.Parameters.Add("@Unn", NpgsqlDbType.Text, 50, "Unn"); com.Parameters.Add("@Adress", NpgsqlDbType.Text, 50, "Adress"); NpgsqlParameter param = com.Parameters.Add("@ONREC", NpgsqlDbType.Integer, 4, "NREC"); param.SourceVersion = DataRowVersion.Original; try { conn.Open(); return com.ExecuteNonQuery(); } catch (SyntaxErrorException e) { throw new ApplicationException("error"); } finally { conn.Close(); } } выдает ошибку: ERROR: 42703: column "nrec" does not exist ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 09:45 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, и правильно делает, что выдаёт ошибку. Потому как она есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 11:26 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxпрописал так http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.sourcecolumn.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 11:40 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, первым делом учимся оформлять свой код. Для этого читаем статью: Как мне оформить свое сообщение? Получаем: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 11:57 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Теперь смотрим выражение, из-за которого возникает ошибка: Код: c# 1. Последний параметр в методе Add - это имя колонки в источнике данных (выше Паганель привёл ссылку на документацию). Но у Вас нет никакого источника данных, следовательно и колонка в нём не существует, о чём и говорит текст ошибки: column "nrec" does not exist . У Вас на вход метода подаются параметры: int NREC, string Name, string VNum, string Unn, string Adress. Вот их и используйте. Как это должно выглядеть, я писал выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 12:05 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
skyANA, public int update(int NREC, string Name, string VNum, string Unn, string Adress) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); //string sqlcom = "update eee.tab set NREC=@NREC, Name=@name, VNum=@VNum,Unn=@Unn, " // + "Adress=@Adress where NREC=@ONREC;"; NpgsqlCommand com = new NpgsqlCommand(@"update eee.tab set NREC=@NREC, Name=@name, VNum=@VNum,Unn=@Unn, " + "Adress=@Adress where NREC=@NREC;", conn); com.Parameters.Add("@NREC", NpgsqlDbType.Integer, 4).Value=NREC; com.Parameters.Add("@Name", NpgsqlDbType.Text, 50).Value=Name; com.Parameters.Add("@VNum", NpgsqlDbType.Text, 50).Value=VNum; com.Parameters.Add("@Unn", NpgsqlDbType.Text, 50).Value=Unn; com.Parameters.Add("@Adress", NpgsqlDbType.Text, 50).Value=Adress; //NpgsqlParameter param = com.Parameters.Add("@ONREC", NpgsqlDbType.Integer, 4); //param.Value = NREC; //param.SourceVersion = DataRowVersion.Original; try { conn.Open(); return com.ExecuteNonQuery(); } catch (SyntaxErrorException e) { throw new ApplicationException("error"); } finally { conn.Close(); } } если вы имели в вмду что нужно написать вот так то ошибка та же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 12:25 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, всем спасибо за помошь, мне сменили задачу, делать все под MYSQL там вроде стандартные функции для этого всего есть через SQLdatesource ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 13:19 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxskyANA, public int update(int NREC, string Name, string VNum, string Unn, string Adress) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); //string sqlcom = "update eee.tab set NREC=@NREC, Name=@name, VNum=@VNum,Unn=@Unn, " // + "Adress=@Adress where NREC=@ONREC;"; NpgsqlCommand com = new NpgsqlCommand(@"update eee.tab set NREC=@NREC, Name=@name, VNum=@VNum,Unn=@Unn, " + "Adress=@Adress where NREC=@NREC;", conn); com.Parameters.Add("@NREC", NpgsqlDbType.Integer, 4).Value=NREC; com.Parameters.Add("@Name", NpgsqlDbType.Text, 50).Value=Name; com.Parameters.Add("@VNum", NpgsqlDbType.Text, 50).Value=VNum; com.Parameters.Add("@Unn", NpgsqlDbType.Text, 50).Value=Unn; com.Parameters.Add("@Adress", NpgsqlDbType.Text, 50).Value=Adress; //NpgsqlParameter param = com.Parameters.Add("@ONREC", NpgsqlDbType.Integer, 4); //param.Value = NREC; //param.SourceVersion = DataRowVersion.Original; try { conn.Open(); return com.ExecuteNonQuery(); } catch (SyntaxErrorException e) { throw new ApplicationException("error"); } finally { conn.Close(); } } если вы имели в вмду что нужно написать вот так то ошибка та жеНе верю Скорее всего ошибка в том, что в запросе Вы пишете @name строчными буквами, а в методе Add с заглавной: @Name . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 14:09 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
спасибо всем за ответы, ларчек проще открывался: на самом деле запрос передовал все названия столбцов маленькими буквами, а они в базе все с заглавной начинались=))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2013, 11:07 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38152594&tid=1358729]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 358ms |

| 0 / 0 |
