PDA

View Full Version : سوال: پر کردن combo bax با فیلدی از پایگاه داده sql



007farzad
جمعه 09 تیر 1391, 12:37 عصر
سلام
میخواستم بدونم تفاوت این کدها در چیه:


Dim cmd As New SqlCommand()
Dim sda As New SqlDataAdapter()
Dim ds As New DataSet()
Connect()
cmd.CommandText = "SELECT * FROM goods_centers"
cmd.Connection = cnn
sda.SelectCommand = cmd
sda.SelectCommand.Connection = cnn
cnn.Open()
sda.Fill(ds, "data")
cnn.Close()
-------------------------------------------------
Connect()
Dim strSQL As String = "SELECT * FROM goods_centers"
Dim da As New SqlDataAdapter(strSQL, cnn)
Dim ds As New DataSet
da.Fill(ds, "Disk")
----------------------------------------------------

دسته اول کد زیر رو اجرا نمیکنه ولی دسته دوم اجرا میکنه:

With combobox
.DataSource = ds.Tables("Disk")
.DisplayMember = "center_name"
.ValueMember = "center_name"
.SelectedIndex = 0
End With

mohamad.zakery
یک شنبه 25 تیر 1391, 02:19 صبح
تفاوتی نیست، فقط شکل فراخوانی عوض شده !!!

در دسته اول شما یک sqlcommand تعریف کردن و بعد اونو به عنوان selectcommand به شی dataAdapter پاس دادین و بعدش با dataAdapter دستور sql اجرا کردین و نتیجه رو توی یک دیتاست ذخیره کردین!!!

در دسته دوم شما یک DataAdapter جدید New کردین
و بعد از اون دستور sql به dataAdapter دادین و دستور اجرا کردین و نتیجه رو توی dataSet ذخیره کردین

توضیح این نکته هم بد نیست که وقتی DataAdapter جدید میسازین یک SqlConnection و یک sqlCommand جدید با جرای سازنده کلاس DataAdapter ایجاد میشه که باز هم همون اشیا بالاست!!!

اما چرا دسته اول اجرا نمیشه ، ممکن خطاهای زیر باشه:
-کوئری اشتباهه
- کانکشن استرینگ اشتباه