Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: 

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Мюллеру .NET
 
 автор: Lukas   (25.02.2009 в 17:47)   личное сообщение
 
   to: FORMAT   (25.02.2009 в 17:41)
 

ОК.

  Ответить  
 
 автор: FORMAT   (25.02.2009 в 17:41)   личное сообщение
 
   to: Lukas   (25.02.2009 в 17:18)
 

Можно и в конструкторе - кидаешь на форму комбобокс, добавляешь BindingSource.
Затем в конструкторе жмешь на BindingSource правой клавишей мыши выбираешь проперти. В пропертях в поле DataSource выбираешь Add Project Data Source. Далее конструктором выбираешь нужную таблицу.

Потом заходишь в проперти комбобокса и в датасоурсе выбираешь в датабиндинге таблицу.
Затем в DisplayMember и ValueMember выбираешь нужные столбцы.

  Ответить  
 
 автор: Lukas   (25.02.2009 в 17:18)   личное сообщение
 
   to: FORMAT   (25.02.2009 в 17:08)
 

А мастера-построители за меня все это написать не хотят, или не могут?
Спасибо, буду курить дальше.
Занимайся делами, а то со мной без зарплаты останешься.

  Ответить  
 
 автор: FORMAT   (25.02.2009 в 17:08)   личное сообщение
 
   to: Lukas   (25.02.2009 в 16:54)
 

Дапустим твае подключение абзываицца cn1

a DataSet абзываицца ds1 ( штобы избежать абзывание объектов ключевыми словеями )
cn1.open()
dim TableAdapter as new SqlDataAdapter(Qwery, cn1)
Dim ds1 As New DataSet()
TableAdapter.Fill(ds1, "Придумываешь любое имя")
With ds2
Me.ComboBox1.DataSource = .Tables("Твое придумманое любое имя")
Me.ComboBox1.DisplayMember = "ProductName"
Me.ComboBox1.ValueMember = "ProductID"

End With

cn1.close()

  Ответить  
 
 автор: Lukas   (25.02.2009 в 16:59)   личное сообщение
 
   to: FORMAT   (25.02.2009 в 16:52)
 

К ручкам то и головушку прикладывать надобноть, а если ее нет?
Мне бы пока мастерами научиться пользоваться.

  Ответить  
 
 автор: Lukas   (25.02.2009 в 16:54)   личное сообщение
 
   to: FORMAT   (25.02.2009 в 16:14)
 

Создал подключение.
Создал DataSet.
Создал TableAdapter.
Создал Qwery:

SELECT     ProductID, ProductName
FROM         Products
ORDER BY ProductName

Че дальше делать не знаю.
Добавлено:
Вроде получилось.

  Ответить  
 
 автор: FORMAT   (25.02.2009 в 16:52)   личное сообщение
 
   to: Lukas   (25.02.2009 в 16:28)
 

А не обязательно строку подключения создавать мастером - ручками, ручками


Dim strSQL1 As String
Dim conn1 As New SqlConnectionStringBuilder() - создается объект строки подключения
conn1.DataSource = serv ' тута указывается имя сервера
conn1.InitialCatalog = bas ' тута указывается имя базы
conn1.IntegratedSecurity = True

Using cn1 As New SqlConnection(conn1.ConnectionString) - создается подключение
cn1.Open()
strSQL1 = " SELECT * FROM TblDol "
Dim da2 As New SqlDataAdapter(strSQL1, cn1) - создается и заполняется датаадаптер, в который сгружаются данные из таблицы TblDol
Dim ds2 As New DataSet() - создается датасет ( аналог рекордсета в аксе )
da2.Fill(ds2, "TblDol") - заполняется датасет данными из датаадаптера

With ds2
Me.ComboBox1.DataSource = .Tables("TblDol") - это аналог роусорса для комбобокса
Me.ComboBox1.DisplayMember = "NaimDol" - показывает что будет отображаться в комбобоксе
Me.ComboBox1.ValueMember = "IdDol" - задается значения комбобокса - типа аналог значений комбобокса в аксе (Column0)
End With
End Using - кирдык соединению



В результате имеешь комбобокс с заполненными данными.

  Ответить  
 
 автор: Lukas   (25.02.2009 в 16:28)   личное сообщение
 
   to: FORMAT   (25.02.2009 в 16:14)
 


Открыл первую страничку


Злой Вы.
Ну и задачи ты ставишь барин, без помошников за неделю не управиться.
Мастером создать строку подключения могу, дальше хуже.
Буду пробовать.

  Ответить  
 
 автор: FORMAT   (25.02.2009 в 16:14)   личное сообщение
17 Кб.
 
   to: Lukas   (25.02.2009 в 15:58)
 

Открыл первую страничку. Что из этого не понятно?

Ну создать строку подключения к базе нордвинд и выбрать данные из к-либо таблицы в комбобокс ты сможешь?

  Ответить  
 
 автор: Lukas   (25.02.2009 в 15:58)   личное сообщение
 
   to: FORMAT   (25.02.2009 в 15:40)
 



А синтаксис VB.NET ты освоил


Ну вроде как обычный синтаксис работы с классами, слегка отличающийся от VBA.
Освоил? -конечно нет.
Пальпацию примерам, признаюсь, делал далеко не всем.
Видимо стоит начать с первой странички?

  Ответить  
 
 автор: FORMAT   (25.02.2009 в 15:40)   личное сообщение
 
   to: Lukas   (25.02.2009 в 14:47)
 

даже не знаю, что тебе сказать....
У Сеппы все очень просто и внятно описано.
Ты примеры пальчиками пропускал через компьютер?
Если нет, то одним чтением не обойдешься - только на практике.

Давай по порядку, что не понятно. Как говорится с самого начала. Там все элементарно.

ЗЫ А синтаксис VB.NET ты освоил?

  Ответить  
 
 автор: Lukas   (25.02.2009 в 14:47)   личное сообщение
 
   to: Lukas   (11.02.2009 в 12:45)
 

Дочитал Сеппу, понял, что ничего не понял.
Хвастай, что у тебя исчо есть, типа азбуки, где "за ручку водят".

  Ответить  
 
 автор: Lukas   (13.02.2009 в 16:39)   личное сообщение
 
   to: Мюллер   (13.02.2009 в 16:34)
 

"...Если насмерть не упьюсь, на хмельной пирушке,
Обязательно вернусь к вам друзья, подружки..."
Brother давно поет любимую песню "Toner Low".
Ехать за ним лень, а с экрана не могу читать.
Так что за недельку полюбасу не управлюсь.

  Ответить  
 
 автор: Мюллер   (13.02.2009 в 16:34)   личное сообщение
 
   to: Lukas   (13.02.2009 в 16:10)
 

так тебе там фигня осталась. Через недельку будешь крутым спецом по ADO.NET

  Ответить  
 
 автор: Lukas   (13.02.2009 в 16:10)   личное сообщение
 
   to: Lukas   (11.02.2009 в 12:45)
 

250 страниц (треть книжки) прочитал.
В голове каша из объектов, классов и методов.
В советские времена в качестве снотворного пользовал "Капитал" Маркса.
Теперь есть достойная замена.

  Ответить  
 
 автор: час   (13.02.2009 в 14:11)   личное сообщение
 
   to: Мюллер   (13.02.2009 в 14:09)
 

Даааааааааааааааааа совсем озверели

  Ответить  
 
 автор: Мюллер   (13.02.2009 в 14:09)   личное сообщение
 
   to: час   (13.02.2009 в 13:32)
 


Простите, А о чём вы сейчас говорите -


Дык это - выше вроде написано про что


Новые методы работы гестапо



  Ответить  
 
 автор: час   (13.02.2009 в 13:32)   личное сообщение
 
   to: Lukas   (12.02.2009 в 16:15)
 


. Для того чтобы понять ответ, надо быть процентов на 75 в теме




=============================================
Простите, А о чём вы сейчас говорите -

  Ответить  
 
 автор: Lukas   (12.02.2009 в 20:02)   личное сообщение
 
   to: Мюллер   (12.02.2009 в 17:40)
 

И для этого мне необходимо импортировать 6 пространств имен и создать 5 объектов?
Да, акс после этого просто песня какая-то.
Жаль, что M$ решили похоронить его плавно. (Мое ощущение)
А ведь для разработки прототипа ему цены нет.

  Ответить  
 
 автор: Мюллер   (12.02.2009 в 17:40)   личное сообщение
 
   to: Мюллер   (12.02.2009 в 17:11)
 

Вот простой пример использования датаридера.
Допустим из базы под названием MySQLBase нужно вытащить из таблицы TblListObj вытащить наименование объекта (NaimObj) и город в котором он находится (CitiObj) для объекта c ID=1 ( IdObj)

Сначала идет подключение необимых специализированных классов

Imports System.Data.SqlClient.SqlConnectionStringBuilder
Imports System.Data.SqlClient
Imports System.Windows.Forms.Form
Imports System.Data
Imports System.Data.DataSet
Imports System.Data.DataColumn

Объявление класса формы:
Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Объявляем строку подключения и параметры подключения
Dim conn1 As New SqlConnectionStringBuilder()
conn1.DataSource = System.Environment.MachineName() '- имя сервера. В данном случае совпадает с именем машины
conn1.InitialCatalog = "MySQLBase"
conn1.IntegratedSecurity = True

Dim cn1 As New SqlConnection(conn1.ConnectionString) - 'Обявляем строку подключения
Dim strSQL1 as String
cn1.Open()
strSQL1 = " SELECT * FROM dbo.TblListObj WHERE IdObj=1"

Dim cmd1 As New SqlCommand(strSQL1, cn1) ' Объявление объекта Command
Dim rdr1 As SqlDataReader = cmd1.ExecuteReader() - 'Объявление объекта DataReader
Считывание данных из таблицы и занесение их в соответствующие текстовые поля.
Do While rdr1.Read
Me.LabNaim.Text = (rdr1("NaimObj"))
Me.LabCiti.Text = (rdr1("CitiObj"))
Loop
rdr1.Close()
cn1.Close()
End Sub
End Class

Вот и фсе. Не правдали, очень напоминает работу с рекордсетом?

  Ответить  
 
 автор: Lukas   (12.02.2009 в 17:29)   личное сообщение
 
   to: Мюллер   (12.02.2009 в 17:11)
 

Эх, буду нырять глубже.
Тонуть, так тонуть.

  Ответить  
 
 автор: Мюллер   (12.02.2009 в 17:11)   личное сообщение
 
   to: Lukas   (12.02.2009 в 16:53)
 

Применение специализированных классов заключается в написании одной строчки
Imports System.Data.SqlClient в классе формы.
Более того, если данная строчка объявлена не будет - компилятор выздаст ошибку.
(Это сродни подключения библиотек в С и С++). Так, что все там продумано.

  Ответить  
 
 автор: Lukas   (12.02.2009 в 16:53)   личное сообщение
 
   to: Мюллер   (12.02.2009 в 16:26)
 

Про типы данных:
"...Объект SqlDataReader возвращает тип данных Decimal модели SQL Server как тип данных Decimal модели .NET. Хотя названия и похожи, тип данных Decimal модели SQL Server может хранить больше данных, чем тип данных Decimal модели .NET. ..."
ну и т.д. стр. 125-126.
В принципе решается с помощью специализированных классов, но ведь об этом надо знать и помнить.
Уж если ребята пишут поставщика данных к конкретному источнику данных, было-бы наверное правильно уровнять типы данных источника и поставщика, что бы не было потребности в специализированных классах.
Ну это так, лирика недоросля.

  Ответить  
 
 автор: Мюллер   (12.02.2009 в 16:26)   личное сообщение
 
   to: Lukas   (12.02.2009 в 16:15)
 

Прочита действительно раньше, чем ты добавил. А я собирался дописать, что фраза "перегруженный метод" в .Net имеет несколько иной смысл.

  Ответить  
 
 автор: Lukas   (12.02.2009 в 16:15)   личное сообщение
 
   to: Мюллер   (12.02.2009 в 16:05)
 


перегруженными по самые помидоры методами классов


Слово "классов" добавил видимо позже, чем ты прочитал.
Спасибо за желание помочь, но:
1. Для того, чтобы задать вопрос, надо быть процентов на 50 в теме.
2. Для того чтобы понять ответ, надо быть процентов на 75 в теме.
Ни тем не другим пока похвастаться не могу.

  Ответить  
 
 автор: Мюллер   (12.02.2009 в 16:05)   личное сообщение
 
   to: Lukas   (12.02.2009 в 15:40)
 

Ну положим, методы доступа к данным ADO.Net нифига не перегружены и уж тем более не по самые помидоры.
Там то методов доступа - кот наплакал - DataSet и DataReader

Отличие этих методов друг от друга - производительностью. У DataReader-а она значительно выше, но датаридером можно пробежаться по записям только сверху вниз, и возвращаться назад нельзя.
DataSet - некий аналог рекордсета, но с куда большими возможностями.
Например в него можно засунуть несколько таблиц, установить между ними связи и доставать данные, пробегаясь по ним в любом направлении.

Типы полей не отличаются, просто называются чуть по другому.

Там на самом деле все просто, как лом в разрезе. Если чо не понятно - обращайся, постараюсь на пальцах объяснить

ЗЫ А предсмертную записку сохраню для потомков.

  Ответить  
 
 автор: Lukas   (12.02.2009 в 15:40)   личное сообщение
 
   to: Lukas   (11.02.2009 в 12:45)
 

Новые методы работы гестапо:
Раньше они просто прижигали каленым железом и вбивали иголки под ногти.
Теперь они предлагают старому больному человеку в качестве средства доступа к данным ADO.NET, с ее перегруженными по самые помидоры методами классов, типами полей, отличающимися от
типов полей сервера и прочая и прочая... УЖОС!!!
Предсмертная записка:
В моем преждевременном умопомрачении прошу винить Мюллера.

  Ответить  
 
 автор: Lukas   (11.02.2009 в 13:53)   личное сообщение
 
   to: Мюллер   (11.02.2009 в 13:23)
 

Я знал, что ты настоящий друг.

  Ответить  
 
 автор: Мюллер   (11.02.2009 в 13:23)   личное сообщение
 
   to: Lukas   (11.02.2009 в 12:45)
 

Заслал на мыло.

  Ответить  
 
 автор: Lukas   (11.02.2009 в 12:45)   личное сообщение
 
 

Вопрос №2.
Не могу найти у себя файл instnwind.sql скрипта установки базы Northwind.
Сеппа пишет он должен распаковываться в
...\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Samples\Setup\
Глянь плз, если у тебя есть, зашли мну.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList