Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
Спасибо уже разобрался.
Есть ещо такой вопрос - у меня есть пару текст едитов и одно контекстное меню на всех -
как в рентайме определить на каком контроле я кликнул шоб определить
для клика по менюше к какой контрол шо пихать?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 09:32 05-08-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol

Цитата:
Спасибо уже разобрался.

Так в чем дело было?

Цитата:
как в рентайме определить на каком контроле я кликнул

sender сравнивать со всеми контролами, пока нужный не найдешь:

Код:
if(sender==textBox1) i+=1;
if(sender==textBox2)  
 
и т. д.
Или для каждого контрола свой обработчик, общий код обработки в отдельный метод и этот метод из обработчика вызывать.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 14:27 05-08-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8

Цитата:
Так в чем дело было?

как я и говорил проблема с индексами,точнее с форейгин кей - я его удалил и сделал связку немного по другому, щас все нормально

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 17:02 05-08-2009
igorillaxp



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь юзал coolite toolkit? Возникла странная проблема с комбобоксами - один обновляет другой через ajax. В принципе побороли, но сама по себе ситуация странная и хотелось бы обсудить с тем, кто с этим сталкивался

Всего записей: 40 | Зарегистр. 09-02-2005 | Отправлено: 02:16 06-08-2009
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal
Цитата:
Пока у меня одно предположение - не открыто "Connection". После присвоения "ConnectionString" - я бы поставил команду "Open"
Я код посмотрел -- оказывается, с открытием вручную соединения я уже экспериментировал (просто, код отложил на время и позабылось), к сожалению это никак не влияет
 
Omicron_Persey_8
Цитата:
А в SQL-ном профайлере запросы на обновление идут после первой попытки, не пробовали смотреть?
Забыл в предыдущем посте упомянуть -- профайлером, естественно, тоже смотрел. А уточни, что это означает -- профайлер как-то запаздывает?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 10:39 06-08-2009 | Исправлено: TeXpert, 11:46 06-08-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Что-то мне кажется, мы друг друга не понимаем. Ты что имеешь в виду под словом профайлер? Я имею в виду утилиту SQL Server Profiler, которая предназначена для мониторинга всех соединений с SQL Server. Грубо говоря, ты в своей проге нажал "Обновить", прога сделала за прос на сервер и в профайлере мы это увидели. Просмотреть содержимое таблиц БД из профайлера нельзя, поэтому мне кажется, что ты имеешь в виду SQL Server Management Studio.
 
В данном случае было интересно: отправила прога запрос на обновление серверу после первой попытки или нет. Это позволило бы, так сказать, определить виновника.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 15:09 06-08-2009
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Omicron_Persey_8
Цитата:
...поэтому мне кажется, что ты имеешь в виду SQL Server Management Studio
Ну уж... Не настолько я, наверное, чайник, чтобы путать такое). Под профайлером имею в виду именно профайлер и ничто иное. Тем более, я уточнил --
Цитата:
...профайлером, естественно, тоже смотрел
это я вспомнил, увидев твоё сообщение
Цитата:
В данном случае было интересно: отправила прога запрос на обновление серверу после первой попытки или нет
После первой попытки запрос не идёт, ясно, что в проге надо копать, так что ищу пока

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 16:56 06-08-2009
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TeXpert
Если он тебе не выполняет запрос после первого запуска, тогда не должна выполняться команда "Update" в твоем коде. Ты пробовал убирать "try"?

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:06 07-08-2009
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal
Сделаю уточнение: запрос не делался при самом первом нажатии, при последующих нажатиях запрос делался, но неудачно, выводилось сообщение типа "String or binary data would be truncated. The statement has been terminated". Я немного перестроил код (но записывающий метод не менял, и вообще, модификации не касаются баз), и кое-что изменилось. А именно: перестал выводиться то сообщение "String or binary data would be truncated...", теперь запись происходит без скандалов, но при самом первом нажатии так же ничего не происходит, запись происходит при последующем
Цитата:
Если он тебе не выполняет запрос после первого запуска, тогда не должна выполняться команда "Update" в твоем коде. Ты пробовал убирать "try"?
А его зачем убирать?
 
P. S. Вообще, странная вещь: при очередном обновлении и в профайлере, и в таблице (через Management Studio) я вижу данные, внесённые при предыдущей попытке, а текущие изменения, стало быть, увиже при попытке следующего обновления. Странно как-то, работающий не может же ждать, когда таблица изволит обновиться
 
Omicron_Persey_8, ты писал
Цитата:
Да и обновление процесс не мгновенный

Цитата:
А в SQL-ном профайлере запросы на обновление идут после первой попытки, не пробовали смотреть?
Раскрой тему -- конкретные задержки какие и как их можно регулировать? База локальная. Спасибо

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 12:08 07-08-2009 | Исправлено: TeXpert, 13:35 07-08-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Да задержки разные могут быть: начиная от загруженности SQL сервера и заканчивая всем, чем угодно. Тем более они у тебя на одном компе. И еще ты писал, что такое происходит иногда. Сильно часто?

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 14:35 07-08-2009
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Omicron_Persey_8
Цитата:
Сильно часто?
Ну, с проблемной таблицей -- а она большая (много полей) -- постоянно, вот и разбираюсь, с другими таблицами такого не было
Цитата:
Тем более они у тебя на одном компе
Так наоборот, должно быть мгновенно -- конкурентов-то нет!

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 17:33 07-08-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так наоборот, должно быть мгновенно -- конкурентов-то нет!

Не обязательно. SQL Server и клиентская прога конкуренты друг другу за процессорное время, память и т. д.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 07:57 08-08-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста, как вставлять обычные переменные в строку запроса в sql?  

Код:
 
Private Sub btnsrtbyseason_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsrtbyseason.Click
        Dim lowprice, highprice As Double
        Dim season As String
        lowprice = InputBox("Enter your low price")
        highprice = InputBox("Enter your high price")
      Try
        Dim da As New Data.OleDb.OleDbDataAdapter("SELECT Commodities.* FROM Commodities INNER JOIN Seasons ON [Commodities].[Code]=[Seasons].[Season ID] WHERE commodities.price between lowprice and highprice and seasons.season=yes", foxconnstring)
        Dim ds As New Data.DataSet()
        ds.Tables.Clear()
        da.Fill(ds, "FoxPro.mdb")
        dgv1.DataSource = ds.Tables(0).DefaultView()
       Catch ex As Exception
           MessageBox.Show(ex.ToString)
    End Try
    End Sub
 

Здесь у меня есть 3 переменных, которые надо вставить в строку запроса. Вот только не знаю как.
P.S. База данных составлена в MS-Access.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 12:17 09-08-2009 | Исправлено: blaro, 12:18 09-08-2009
chigiryov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет, blaro
 
ты писал:
 

Цитата:
Подскажите пожалуйста, как вставлять обычные переменные в строку запроса в sq

 
не надо вставлять обычные переменные в sql запрос, это уязвимость (http://en.wikipedia.org/wiki/SQL_injection)
 
почитай про SqlParameter'ы например:
 
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx

Всего записей: 6 | Зарегистр. 22-01-2009 | Отправлено: 22:47 09-08-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо за статьи. Это было интересно.  
Ты знаешь, мне по фиг, уязвимости это или нет. Это не коммерческий проект или сайт, который работает с БД. Я пишу всего лишь обычную прогу - домашнее задание, которое скоро надо сдать.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 15:01 10-08-2009
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro

Цитата:
Ты знаешь, мне по фиг, уязвимости это или нет. Это не коммерческий проект или сайт, который работает с БД. Я пишу всего лишь обычную прогу - домашнее задание, которое скоро надо сдать.

Тогда используй конкатенацию (объединение) строк. Пример "...WHERE id = " + id_param + " AND...".
 
ЗЫ. Лучше сразу привыкать к правильному и безопасному программированию.

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 15:23 10-08-2009
chigiryov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет blaro
 

Цитата:
Ты знаешь, мне по фиг, уязвимости это или нет

 
 
тогда наверное тебя заинтересует метод String.Format как юзать:
 
http://blogs.msdn.com/kathykam/archive/2006/03/29/564426.aspx  
 
главное не забудь, что строковые литералы, как и даты, в sql запросе должны быть в одинарных кавычках
 
те вместо  
 

Код:
"SELECT Commodities.* FROM Commodities INNER JOIN Seasons ON [Commodities].[Code]=[Seasons].[Season ID] WHERE commodities.price between lowprice and highprice and seasons.season=yes"

 
нужно написать типа  
 

Код:
String.Format("SELECT Commodities.* FROM Commodities INNER JOIN Seasons ON [Commodities].[Code]=[Seasons].[Season ID] WHERE commodities.price between {0} and {1} and seasons.season='{2}'",lowprice, highprice, season)
 

 
такой вызов подставит в строку вместо {0}, {1} и тд параметры lowprice, highprice и тд
 

Цитата:
Я пишу всего лишь обычную прогу - домашнее задание, которое скоро надо сдать.

 
преподы любят подъебывать про всякие sqlinjection, поверь мне

Всего записей: 6 | Зарегистр. 22-01-2009 | Отправлено: 15:34 10-08-2009
Lihonosov

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro
niichavo
Может не стоит так выражаться

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 16:56 10-08-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
chigiryov

Цитата:
преподы любят подъебывать про всякие sqlinjection, поверь мне  

Наш такой простой, что может сам спросить почему я так написал. Он мало что понимает в защите и в взломе.
 
niichavo

Цитата:
Тогда используй конкатенацию (объединение) строк. Пример "...WHERE id = " + id_param + " AND...".
 
ЗЫ. Лучше сразу привыкать к правильному и безопасному программированию.

Простая конкатенация у меня не работает, а может и я не правильно написал. А насчет правильного и безопасного программирования - ты прав. К этому надо привыкать с молодых ногтей.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 18:43 10-08-2009
chigiryov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro
 
1. Exception (или что там возвращается) в студию. Коннектшн к файлу базы открывается?
 
2. Вытяни дебаггером (ну или там Console.WriteLine) строку запроса  
 
3. Попробуй зделать запрос стандартными средствами
 
4. Сравни запрос, который генерит програма с тем что получается когда использовать мастер запросов в Access

Всего записей: 6 | Зарегистр. 22-01-2009 | Отправлено: 18:53 10-08-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru