Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
доброго времени суток всем. Помогите пожалуйста мне с написанием методов отображения всей таблицы из базы данных, одного элемента из таблицы, удаления, апдейт и инсерт. заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 12:46 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
если можно киньте пару рабочих примеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 12:51 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxПомогите пожалуйста мне с написанием методов отображения всей таблицы из базы данных, одного элемента из таблицы, удаления, апдейт и инсерт. заранее спасибо. Поможем. Покажи код, что получилось написать, а в чём затык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:06 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
МСУ, отображение всей таблицы public DataSet get() { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); string sqlcom = "select * from eee.tab;"; NpgsqlCommand com = new NpgsqlCommand(sqlcom, conn); com.CommandType = CommandType.Text; NpgsqlDataAdapter da = new NpgsqlDataAdapter(com); DataSet bb = new DataSet(); da.Fill(bb); return bb; } удаление выдает ошибку public void delete(int NREC) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); string sqlcom = "delete * from eee.tab where NREC=@NREC;"; NpgsqlCommand com = new NpgsqlCommand(sqlcom, conn); com.CommandType = CommandType.Text; com.Parameters.Add("@NREC", NpgsqlDbType.Integer, 4); com.Parameters["@NREC"].Value = NREC; try { conn.Open(); com.ExecuteNonQuery(); } catch (SyntaxErrorException e) { throw new ApplicationException("error"); } finally { conn.Close(); } } сама ошибка Ошибка сервера в приложении '/'. ObjectDataSource 'ObjectDataSource1' не может найти не групповой метод 'delete', который принимает параметры типа 'WebApplication5.tab'. Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. Сведения об исключении: System.InvalidOperationException: ObjectDataSource 'ObjectDataSource1' не может найти не групповой метод 'delete', который принимает параметры типа 'WebApplication5.tab'. Ошибка источника: Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:10 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
база данных PostgreSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:13 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
но мне хотяб основные принципы по созданию этих меьодов нужны, я только пару недель назад это все начал изучать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:15 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, а есть звездочку убрать после delete? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:21 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
МСУ мне ведь нужно всю строчку удалить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:37 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxмне ведь нужно всю строчку удалить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:39 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
варианта "не всю" в принципе не существует звездочка не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:40 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxМСУ мне ведь нужно всю строчку удалить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:41 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
понятно=) я попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:43 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
МСУ, я сюда завтра зайду, вы сюда зайдете? сейчас мне нужно идти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:50 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Ой, и я загляну на чашечку. Можно?.. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:53 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
The_Immortal, и я тоже буду, кто еще будет? ))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:54 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
конечно ребят буду рад любой помощи=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 13:57 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Тоже загляну ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 14:03 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Березовский, по прилету из Лондона тебя встретят и проводят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 15:17 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKxМСУ, я сюда завтра зайду, вы сюда зайдете? сейчас мне нужно идти Зайду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 15:21 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
я убрал звездочку после delete все равно ошибка вылетает=(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 05:13 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Замени @NREC на NREC xCyMPaKx Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 05:27 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, то же самое=((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 05:31 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
public void delete(int NREC) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); string sqlcom = "delete from eee.tab where NREC=@NREC;"; NpgsqlCommand com = new NpgsqlCommand(sqlcom, conn); com.CommandType = CommandType.Text; com.Parameters.Add("NREC", NpgsqlDbType.Integer, 4); com.Parameters["NREC"].Value = NREC; try { conn.Open(); com.ExecuteNonQuery(); } catch (SyntaxErrorException e) { throw new ApplicationException("error"); } finally { conn.Close(); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 05:32 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, а тупо AddWithValue заюзать нельзя? :) Код: c# 1. 2. 3. 4. 5. Хотя, наверное, разницы нет. Или вот так: Код: c# 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:11 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Ну и исчо вариант: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:21 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
В 13917731 "@NREC" заменить на "NREC" - видимо, пора уже спать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:31 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
The_Immortal, та же самая ошибка, может в чем то другом ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:32 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:34 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
The_Immortal, вот я тоже не понимаю в чем косяк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:39 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
а можно как нибудь через data set все действия реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:40 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, а без параметров работает? Ну если втупую: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:40 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
The_Immortal, аналогичная ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:47 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, так, а если тоже самое, только указать в запросе конкретный NREC (который есть). Код: c# 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:50 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
The_Immortal, видимо дело не в этом, потому-что лшибка та же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:52 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, а если этот запрос попробовать непосредственно в субд? Вообще, напрягает название таблицы через точку... Это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 06:56 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
The_Immortal, это полное ее название без нее вообще ничего не работает... запрос в БД работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 07:11 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
можно ли как нибудь реализовать метод Delete через Data set? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 07:27 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
я разобрался с этой ошибкой там входные параметры были не верно указаны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 09:45 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
теперь у меня написано так: public DataSet delete(tab NREC) { NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;port=5432;user id=postgres;password=111111;database=postgres;"); string sqlcom = "delete from eee.tab where NREC= @NREC"; NpgsqlCommand com = new NpgsqlCommand(sqlcom, conn); com.CommandType = CommandType.Text; com.Parameters.Add("@NREC", NpgsqlDbType.Integer, 4).Value = NREC; NpgsqlDataAdapter da = new NpgsqlDataAdapter(com); DataSet bb = new DataSet(); da.Update(bb); return bb; } и ошибка: Операции Update не удалось найти TableMapping["Table"] или DataTable "Table". Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. Сведения об исключении: System.InvalidOperationException: Операции Update не удалось найти TableMapping["Table"] или DataTable "Table". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 09:47 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 11:15 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, смотрю Вы начали совсем не понятные эксперименты. Покажите как Вы разместили ObjectDataSource на странице, что указали в качестве DeleteMethod, DeleteParameters, TypeName. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 11:35 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 11:40 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
skyANA, я в этом только недавно начал разбираться, и в делет метод и параметрах ничего не прописывал, а что там должно быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 12:43 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx, тогда прочитайте сл. статью: ObjectDataSource.DeleteMethod - свойство . И покажите, как я просил, как вы разместили ObjectDataSource на странице. Код покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2013, 13:06 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
public 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, 09:58 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
xCyMPaKx Код: sql 1. 2. так стало понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:21 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Паганель, не особо можно по подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:23 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:25 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Паганель, в PostgreSQL запрос работает если вы об этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:28 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#18+
Я в PG не спец, так что объясните уж Вы как же этот запрос работает Я в документации (ссылку я привел) вижу, что одинарная кавычка означает строку, а если надо имя поля, то кавычка должна быть двойная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 11:41 |
|
||
|
трех уровневая система написание методов
|
|||
|---|---|---|---|
|
#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?all=1&fid=18&tid=1358729]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 415ms |

| 0 / 0 |
