в базе данных есть 2 таблицы. Первая содержит информацию о водителях и соответственно первичный ключ Таб.номер водителя,Вторая таблица содержит информацию о том,какой водитель куда едит(внешний ключ-таб.номер водителя).Можно ли сделать так,что при вводе ФИО водителя во вторую таблицу информация о его таб.номере и прочее введётся автоматически?
Рассылка закрыта
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Апрель 2012 → | ||||||
1
|
||||||
---|---|---|---|---|---|---|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
14
|
15
|
|
16
|
17
|
18
|
19
|
21
|
22
|
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
Статистика
-1 за неделю
Программирование (VB,C#,ASP,.NET): новости, советы, примеры
Выпуск # 684Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения. Содержание выпускаЧитайте в этом выпуске: Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.Форумы Kbyte.RuНа форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки. Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий. Задать свой вопрос прямо сейчас Доброго времени суток!Подскажите пож-та: в базе данных есть 2 таблицы. Первая содержит информацию о водителях и соответственно первичный ключ Таб.номер водителя,Вторая таблица содержит информацию о том,какой водитель куда едит(внешний ключ-таб.номер водителя).Можно ли сделать так,что при вводе ФИО водителя во вторую таблицу информация о его таб.номере и прочее введётся автоматически? Ответ #1 @Aleksey Nemiro 19.04.2012 13:19 Для выборки данных из нескольких таблиц по ключевому полю можно использовать инструкцию INNER JOIN. Например: SELECT * FROM [водители] INNER JOIN [поездки] ON [поездки].[номер водителя] = [водители].[номер водителя] Ответ #2 @Egoza 19.04.2012 13:30 strSQL = "SELECT * FROM Voditely " INNER JOIN [Reisy] ON [Reisy].[Tabelny number voditelya] = [Voditely].[Tabelny number voditelya] Set rs = db.OpenRecordset(strSQL) вот так это должно выглядеть? Ответ #3 @Aleksey Nemiro 19.04.2012 16:41 strSQL = "SELECT * FROM Voditely "Это единый запрос, он весь должен быть в кавычках: strSQL = "SELECT * FROM Voditely INNER JOIN [Reisy] ON [Reisy].[Tabelny number voditelya] = [Voditely].[Tabelny number voditelya]" Ответ #4 @Egoza 19.04.2012 20:41 Хорошо,это я сделала..а каким образом это будет работать?В первой табл вводится таб.номер водителя,желательно чтоб во второй не вводился..а выводился в соответствии с выбранной фамилией..Скажем выбираем Иванова и он определяет,что его таб.номер=5..и выводит это..Так
можно? Ответ #5 @Aleksey Nemiro 19.04.2012 20:57 В первой табл вводится таб.номер водителя,желательно чтоб во второй не вводился..а выводился в соответствии с выбранной фамилией..Скажем выбираем Иванова и он определяет,что его таб.номер=5..и выводит это..Так можно?Да, можно. Однако с числами будет работать быстрее, чем со строками. Т.е. желательно, чтобы номер водителя был в обоих таблицах. Тем более, что у разных людей могут быть одинаковые фамилии, хотя можно в INNER JOIN добавить дополнительные условия выбора, но это может сильно отразиться на производительности (скорости выборки данных), особенно если данных будет много (тысячи строк и более). Например: strSQL = "SELECT * FROM Voditely INNER JOIN [Reisy] ON [Reisy].[Фамилия водителя] = [Voditely].[Фамилия водителя] AND [Reisy].[Имя водителя] = [Voditely].[Имя водителя]" Либо, аналогично, можно сделать при помощи оператора WHERE: strSQL = "SELECT * FROM Voditely INNER JOIN [Reisy] ON [Reisy].[Фамилия водителя] = [Voditely].[Фамилия водителя] WHERE [Reisy].[Имя водителя] = [Voditely].[Имя водителя]" В случае с числами, выборка будет происходить быстрее, так число занимает строгое, незначительно, количество байт, в отличие от строк. Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы. 400 Bar request @SocrAT 18.04.2012 11:21 Добрый день, Форумчане! Прошу помощи в следующем вопросе: Есть веб-сервис (SOAP 1.1). Обращаюсь к методу этого веб-сервиса, передавая бизнес-объект с набором атрибутов. В числе прочих атрибутов - перечень работ на определенном объекте. Если этих работ не очень много - все отлично. Метод отрабатывает успешно. Если работ становится много - ловлю "Удаленный сервер вернул неожиданный ответ: (400) Bar request". С помощью Fiddler изучал запросы. Выяснилось следующее: Если запрос имеет размер 56650 символов - то все отрабатывает успешно. Если 62699 - уже ответ 400. Эти цифры получились в результате обработки двух разных файлов. Прошу помочь разобраться, почему ответ 400 и как с этим бороться? Может быть можно IIS настроить? Или web.config со стороны сервиса поправить? Ответ #1 @Aleksey Nemiro 18.04.2012 11:33 В web.config
нужно смотреть на max-ы. Скорей всего maxReceivedMessageSize: <system.serviceModel> <bindings> <basicHttpBinding> <binding name="pppSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:05:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="16581375" maxBufferPoolSize="524288" maxReceivedMessageSize="16581375" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> </system.serviceModel> maxBufferPoolSize - максимальное значение буферных пулов, используемых транспортом. Значение по умолчанию — 524 288 байт. maxReceivedMessageSize - максимальный размер (в байтах) сообщения, обрабатываемого привязкой. Значение по умолчанию — 65 536 байт. maxStringContentLength - максимальная длина возвращаемой строки. По умолчанию 8192. maxArrayLength - максимально допустимая длина массива. Значение по умолчанию — 16384. maxBytesPerRead - Максимально допустимое число байтов, возвращаемых для каждой операции чтения. Значение по умолчанию — 4096. maxNameTableCharCount - максимально допустимое количество символов в имени таблицы. Значение по умолчанию — 16384. Ответ #2 @SocrAT 18.04.2012 11:43 Алексей, привет! Не совсем мой вариант, потому что данные настройки отвечают за подключение к сервису. А я подключаюсь из Excel-аддона. И в моих настройках: maxBufferSize="7168000" maxBufferPoolSize="524288" maxReceivedMessageSize="7168000" Но, проблема в том, что именно сервер мне отвечает 400. Видимо надо на стороне сервера крутить, а не в <binding>. Ответ #3 @Aleksey Nemiro 18.04.2012 11:50 На стороне сервера, в web.config, в секции system.web: <httpRuntime maxRequestLength="102400"/> Ответ #4 @SocrAT 18.04.2012 11:56 Ответ #5 @Aleksey
Nemiro 18.04.2012 12:17 Сервер будет выдавать 400 ошибку в случаях, если клиент будет отправлять неполноценный (например, урезанный) запрос или с неверными заголовками. Т.е. нужно смотреть, что отправляет клиент. Чтобы были правильные HTTP-заголовки и содержимое запроса. Так что от binding это тоже может зависеть зависит. 61 Кб - странное число.. Добавить свой ответ в эту тему · В теме есть еще 12 ответов. Смотреть все ответы. ComboBox в VB @Egoza 18.04.2012 11:15 Доброго времени суток!Подскажите пожалуйста как связать объект ComboBox с БД Access? Ответ #1 @Aleksey Nemiro 18.04.2012 11:40 Ответ #2 @Egoza 18.04.2012 11:49 Спасибо за хорошую ссылку,но там я ничего не нашла,относительно моего вопроса.. Ответ #3 @Aleksey Nemiro 18.04.2012 13:38 Вот в этом примере: Как получить данные из базы данных?, показано как программно получить данные из базы. В этом фрагменте кода: Do Until RS.EOF 'вывод данных Debug.Print RS("id") 'следующая запись 'ВНИМАНИЕ: если эту строку пропустить 'получится бесконечный цикл 'и программа зависнет! RS.MoveNext Loop ComboBox1.AddItem RS("id")'или ComboBox1.Add RS("id")'давно не видел vb 6.0 Ответ #4 @Egoza
18.04.2012 14:37 DataGridView @rusiko 17.04.2012 23:55 Привет всем. Подскажите пожайлуста как мне сделать так чтоб при поиске из DataGridView не выводилась ошибка. Дело в том что у меня прога на Visual Basic 2010, а БД на SQL Sever 2008, так вот я на форму поставил несколько кнопок и textbox. И с помощью этих кнопок и textbox я ищу данные из DataGridView. Когда
я заполняю все поля в DataGridView у меня все получаеться, а вот как только оставляю одно поле пустым сразу же выдаеться ошибка что "поле isDBNull". Много чего пробовал, но не получаеться. Хотел изменить значения <Allow Nulls>, edit columns и много чего, но не получилось. Помогите мне с этим справиться. Спасибо заранее Перехват нажатия кнопки Рефрешь браузера @Vlad_Imir 16.04.2012 15:08 Добрый день, У меня страница обновляется с помощью PageMethods. В связи с этим я бы не хотел производить обновление с рефрешь. Можно ли с помощью javascript определить что произошло нажатие кнопки Refresh браузера (F5 Или Ctrl+R можно перехватить). Можно ли на сереврной стороне (ASP.NET) определить что пользователь нажал рефрешь? Владимир Ответ #1 @Aleksey Nemiro 16.04.2012 16:21 Можно ли с помощью javascript определить что произошло нажатиеОпределить, какая кнопка нажата, наверное можно, а вот запретить вряд ли, из-за ограничений безопасности. Например: document.attachEvent("onkeydown",window_onkeydown); function my_onkeydown_handler() { if (event.keyCode == 116)//wich { alert("ф5"); // можно попробовать отменить нажатие /* event.returnValue = false; event.keyCode = 0;*/ } } Можно ли на сереврной стороне (ASP.NET) определить что пользователь нажал рефрешь?Можно сделать hidden-поле на странице. После первого PostBack поставить туда какое-нибудь значение, например: 1. При последующих PostBack проверять это значение, если оно равно 1, значит юзер обновил страницу. Если есть возможность, для избежания повторных PostBack, можно после первой отправки формы на сервер делать редирект куда-нибудь. Убрать фокус в ListBox @Леонид 16.04.2012 07:52 Подскажите
как убрать и потом обратно вернуть при необходимости фокус выбранной строки в ListBox_е.Спасибо... Отображение фонового изображения формы на кнопках @irisha_korolkova 15.04.2012
17:40 Пишу программу на C#. На форме есть picturebox с некоторым изображением, поверх изображения ставлю кнопку. Мне нужно чтобы на этой кнопке отображалась часть фонового изображения. Возможно ли это реализовать? Знаю, что на делфе это делалось свойством flat у кнопки, а на C# как? Ответ #1 @Aleksey Nemiro 16.04.2012 16:32 Т.е. нужна прозрачная кнопка? Так просто это в .NET не сделать.. Ответ #2 @Shark1 17.04.2012 02:05 Можно сделать так: на форме ElementHost1,
Button1 и Picturebox1, далее код : VB.Net : Imports System.ComponentModel Public Class Form1 Public btn As New System.Windows.Controls.Button Public brsh As System.Windows.Media.VisualBrush Dim img As New System.Windows.Controls.Image Dim ofd As New OpenFileDialog Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then Dim bi As New System.Windows.Media.Imaging.BitmapImage bi.BeginInit() PictureBox1.ImageLocation = ofd.FileName bi.UriSource = New Uri(ofd.FileName) bi.EndInit() img.Source = bi btn.Width = 80 btn.Height = 30 btn.Content = String.Empty btn.Background = New System.Windows.Media.VisualBrush(img) ElementHost1.Child = btn End If Catch ex As Exception MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub End Class C# : using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Diagnostics; using System.Windows.Forms; using System.Linq; using System.Xml.Linq; using System.ComponentModel; public partial class Form1 { public System.Windows.Controls.Button btn = new System.Windows.Controls.Button(); public System.Windows.Media.VisualBrush brsh; System.Windows.Controls.Image img = new System.Windows.Controls.Image(); OpenFileDialog ofd = new OpenFileDialog(); private void Button1_Click(System.Object sender, System.EventArgs e) { try { if (ofd.ShowDialog() == Windows.Forms.DialogResult.OK) { System.Windows.Media.Imaging.BitmapImage bi = new System.Windows.Media.Imaging.BitmapImage(); bi.BeginInit(); PictureBox1.ImageLocation = ofd.FileName; bi.UriSource = new Uri(ofd.FileName); bi.EndInit(); img.Source = bi; btn.Width = 80; btn.Height = 30; btn.Content = string.Empty; btn.Background = new System.Windows.Media.VisualBrush(img); ElementHost1.Child = btn; } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); } } public Form1() { InitializeComponent(); } } Декодирование ?UTF-8?Q?..... @АлекСашка
13.04.2012 16:23 Всем добрый день. Не могу понять почему после декодирования, вместо желанного русского текста вылезает полная абракадабра. Проект делаю на C# .NET 4, используя статью и пример http://kbyte.ru/ru/Programming/Articles.aspx?id=65&mode=art Получение почты по протоколу POP3 и обработка MIME. Все работает замечательно кроме.....кодировки. Не подскажете где у меня в ДНК проблема? Вот строка из кода которая должна раскодировать поступающий символ в 16-ом виде: return ((char)int.Parse(m.Groups["char"].Value, System.Globalization.NumberStyles.AllowHexSpecifier)).ToString(); где m.Groups["char"].Value равен допустим D0, возвращает ?... Может нужно добавить какой-нибудь другой параметр в проект или код? Ответ #1 @Aleksey Nemiro 13.04.2012 17:24 Это, как я понимаю из функции декодирования заголовков: HeadersEncode. Похоже в статье преобразование кодировки для Quoted-Printable пропущено Сделать это можно так: result = ConvertCodePage(ParseQuotedPrintable(m.Groups["value"].Value), cp); private string HeadersEncode(Match m) { string result = String.Empty; Encoding cp = Encoding.GetEncoding(m.Groups["cp"].Value); if (m.Groups["ct"].Value.ToUpper() == "Q") { // кодируем из Quoted-Printable result = ConvertCodePage(ParseQuotedPrintable(m.Groups["value"].Value), cp); } else if (m.Groups["ct"].Value.ToUpper() == "B") { // кодируем из Base64 result = cp.GetString(Convert.FromBase64String(m.Groups["value"].Value)); } else { // такого быть не должно, оставляем текст как есть result = m.Groups["value"].Value; } return result; } Один символ UTF-8 занимает 2 байта, в Quoted-Printable под один символ выделен один байт. UTF-8 удобней кодировать Base64, у меня сомнения, что эта кодировка может быть использована для кодирования Quoted-Printable.. Если это действительно так, то функцию ParseQuotedPrintable придется полностью переделывать. Сейчас функция ParseQuotedPrintable работает со строками, чтобы правильно обрабатывать Utf-8 нужно работать с байтами - заполнять массив байт и потом преобразовывать кодировку. В Windows есть COM-компонент для автоматического определения кодировки, который использует IE. Найти его можно по адресу C:\Windows\System32\MLang.dll. Dll-ка для работы с MLang.dll под .NET Framework 4 во вложении. Пример использования: //result = ParseQuotedPrintable(m.Groups["value"].Value) //cp - кодировка, которая указана в заголовке, она будет возвращена, если не удастся определить кодировку автоматически Encoding cpa = MultiLanguage.CodePageDetector.GetOutboundEncoding(result, cp); //cpa - будет содержать автоматически определенную кодировку, либо кодировку, которая была передана в заголовках (cp) result = ConvertCodePage(ParseQuotedPrintable(m.Groups["value"].Value), cpa);//преобразование кодировки декодированного текста в cpa Ответ #2 @Aleksey Nemiro 13.04.2012 17:31 Набросал функцию ParseQuotedPrintable,
но не проверял: private string ParseQuotedPrintable(string source, Encoding cp) { source = source.Replace("_", " "); source = Regex.Replace(source, @"(\=)([^\dABCDEFabcdef]{2})", ""); MatchCollection mc = Regex.Matches(source, @"\=(?<char>[\d\w]{2})"); byte[] result = new byte[mc.Count]; for (int i = 0; i <= mc.Count - 1; i++) { result[i] = byte.Parse(mc[i].Groups["char"].Value, System.Globalization.NumberStyles.AllowHexSpecifier); } return ConvertCodePage(result, cp); } private string HeadersEncode(Match m) { string result = String.Empty; Encoding cp = Encoding.GetEncoding(m.Groups["cp"].Value); if (m.Groups["ct"].Value.ToUpper() == "Q") { // кодируем из Quoted-Printable result = ParseQuotedPrintable(m.Groups["value"].Value, cp);//ParseQuotedPrintable } else if (m.Groups["ct"].Value.ToUpper() == "B") { // кодируем из Base64 result = cp.GetString(Convert.FromBase64String(m.Groups["value"].Value)); } else { // такого быть не должно, оставляем текст как есть result = m.Groups["value"].Value; } return result; } Ответ #3 @АлекСашка 13.04.2012 18:11 ОГРОМНОЕ СПАСИБО!!!! РАБОТАЕТ!!! P.S. Еще в метод дешифровки текста тогда надо передать cp. Ответ #4 @АлекСашка 13.04.2012 19:36 В теле сообщение у меня текст в формате text/html. Там тоже присутствует выше упомянутая кодировка. Ответ #5 @Aleksey Nemiro 13.04.2012 19:43 По идеи текст должен нормально декодироваться. Функция ParseQuotedPrintable общая для заголовков и содержимого. Добавить
свой ответ в эту тему · В теме есть еще 15 ответов. Смотреть все ответы. Вакансии в ITтребуется амбициозный программистУкраина | Удаленная работа Web-программистРоссия, Санкт-Петербург | Работа в офисе Web программистРоссия, Санкт-Петербург | Работа в офисе | 20 000.00 KBP Web-программистРоссия, Санкт-Петербург | Работа в офисе | 50 000.00 KBP Web-программистРоссия, Санкт-Петербург | Работа в офисе | 25 000.00 KBP Web - программистРоссия, Санкт-Петербург | Работа в офисе WEB ПрограммистРоссия, Санкт-Петербург | Работа в офисе | 30 000.00 KBP Веб-программистРоссия, Санкт-Петербург | Работа в офисе | 40 000.00 KBP SEO-Оптимизатор интернет-магазинаРоссия, Санкт-Петербург | Работа в офисе Программист Интернет магазинаРоссия, Нижний Новгород | Работа в офисе | 30 000.00 KBP Все вакансии в IT · Новости мира ITВ России создан "iPhone-дозиметр"Резидент Фонда «Сколково» представил первый Apple-совместимый дозиметр-радиометр «ДО-РА», разработанный в России. Резидент кластера ядерных технологий Фонда «Сколково» представил первый Apple-совместимый прототип дозиметр-радиометр «ДО-РА», работающий на базе смартфона iPhone 4 и 4s.
В январе 2012 года ОАО «Интерсофт Евразия» под проект «ДО-РА» получило свой первый грант от Фонда «Сколково». Рыночная стоимость исключительного права на активы «ДО-РА», патенты и изобретения, составляет более $323 млн в соответствии с методикой рыночной оценки нематериальных активов, разработанной «Deloitte & Touche» для Российского рынка. 18.04.2012 11:37 · Категория: Железо · Источник: CyberSecurity.ru Microsoft рассказала о трех версиях Windows 8Windows 8 выйдет в трех версиях: Windows 8, Windows 8 Pro и Windows RT. Первые две предназначены для процессоров с архитектурой x86, а третья - для процессоров ARM. В состав Windows RT войдут программы из офисного пакета MS Office. Windows 8 Pro рассчитана на продвинутых пользователей и бизнес. 18.04.2012 11:35 · Категория: Бизнес в IT · Источник: Lenta.ru Компьютер за 35 долларов добрался до заказчиковНачались поставки первой партии 35-долларовых компьютеров Raspberry Pi на базе Linux. В партию вошли десять тысяч устройств. Все они были распроданы по предзаказам в конце февраля 2012 года. Доставка стартовала с задержкой из-за осложнений при производстве и сертификации. 18.04.2012 11:35 · Категория: Железо · Источник: Lenta.ru
Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей: Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter. Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты. Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT. |
В избранное | ||