PDA

View Full Version : اتصال به بانک اطلاعاتی



saharlover
دوشنبه 29 آبان 1385, 12:18 عصر
با سلام من پروژه ای دارم که با vb.net و sqlserver کار می کند . این پروژه تا حالا پیش رفته ولی مشکل جدید ما اتصال به بانک اطلاعاتی هست یعنی ازاتصال به بانک ما error می گیرد . در ضمن ورژن بانک اطلاعاتی ما 2000 است و vs ما 2005 .
لطفا در این مورد ما را راهنمایی فرمایید.

mahsor
دوشنبه 29 آبان 1385, 14:18 عصر
لطفا خطایی که گزارش میشه رو بگید
یا لااقل بگید شما چطور به Sql متصل میشید
connection string شما چیجوریه؟
یک کم بیشتر ما رو راهنمایی کنید تا ما هم بتونیم شما رو بهتر راهنمایی کنیم

saharlover
شنبه 04 آذر 1385, 14:09 عصر
با تشکر از شما دوست گرامی ما به صورت wizard متصل میشویم به این صورت که در پنجره solution explorer روی نام پروژه راست کلیک می کینیم و از گزینه add زیر منوی existing item را انتخاب کرده و در کادر باز شده در قسمت نوع فایل ها data را انتخاب می کنیم مسیر بانک را می رویم تا بانک خود را انتخاب کنیم وقتی بانک را باز می کنیم کادری باز می شود تا data set را باز کند که در اینجا data set را نمی آورد.

h.bathaie
یک شنبه 05 آذر 1385, 02:20 صبح
با تشکر از شما دوست گرامی ما به صورت wizard متصل میشویم به این صورت که در پنجره solution explorer روی نام پروژه راست کلیک می کینیم و از گزینه add زیر منوی existing item را انتخاب کرده و در کادر باز شده در قسمت نوع فایل ها data را انتخاب می کنیم مسیر بانک را می رویم تا بانک خود را انتخاب کنیم وقتی بانک را باز می کنیم کادری باز می شود تا data set را باز کند که در اینجا data set را نمی آورد.

ظاهرا شما دوست دارید خودتونو آزار کنید ...
به نظر من این کار رو با کد انجام بدین خیلی بهتره . گرچه توی روشی که گفتین کار راحت تره وخیلی کارهارو میشه با dragNdrop انجام داد ولی من هیچوقت نتونستم بهش اعتماد کنم ...

saharlover
یک شنبه 05 آذر 1385, 12:44 عصر
من هم به همین نتیجه رسیدم واز طریق کدنویسی هم انجام دادم ولی باز با مشکل روبرو شدم وبا توجه به منابعی که دراختیار داشتم به این صورت کد رو نوشتم ولی با ز هم با خطا روبرو شدم واز provideram خطا گرفت اگه شما کدی دیگری در اختیار دارید یا در مورد این خطا اطلاعاتی دارید لطفا منو راهنمایی کنید
dim con as new adodb.connection
con.open("provider=data source=computer-f103d7
و....................................

h.bathaie
یک شنبه 05 آذر 1385, 19:37 عصر
Dim CN As New SqlConnection()
Dim SqlCmd As New SqlCommand()
Dim SqlAdapt As New SqlDataAdapter(SqlCmd)
Dim Ds As New DataSet
SqlCmd.Connection = CN
SqlCmd.CommandText = ""
CN.Close()
CN.ConnectionString = "SERVER = " & ServerName & _
" ; DATABASE =" & DataBaseName & _
" ; User ID =" & My_UserName & _
" ; Pwd = " & My_Password
CN.Open()
SqlCmd.CommandType = CommandType.StoredProcedure
SqlCmd.ExecuteNonQuery()
SqlAdapt.Fill(Ds)


منبع:
http://www.atropatgan.com/bforum/viewtopic.php?t=697

problem
یک شنبه 05 آذر 1385, 20:47 عصر
سلام

من هم کاملا با چیزی که گفته شد موافقم. ببین اصلا جریان من این بود که من Express Edition‌رو نصب کرده بودم که اصلا با دیتابیس‌های remote‌ نمی‌تونه به صورت Wizard کار کنه! من هم یاد گرفتم که چقدر کدش راحته. بعد که با نسخه Team Edition کار کردم، دیدم واقعاً کدی که با Wizard‌ ساخته می‌شه بی‌خوده!

کد بزن!

saharlover
دوشنبه 06 آذر 1385, 13:40 عصر
سلام
مرسی از راهنماییتون.
میخواستم یه لطف دیگه هم بکنید اگه میشه یه مقداری در مورد کد برام توضیح بدید چون من هیچ پیش زمینه ای از این کد ندارم خیلی متوجش نمی شوم
کد تو برنامه نوشتم ولی از server م خطا میگیره تو این قسمت چی باید بزارم
باید تنظیمات خاصی قبلش انجام بدم
ممنون میشم برام بیشتر توضیح بدید.

problem
سه شنبه 07 آذر 1385, 21:10 عصر
سلام
مرسی از راهنماییتون.
میخواستم یه لطف دیگه هم بکنید اگه میشه یه مقداری در مورد کد برام توضیح بدید چون من هیچ پیش زمینه ای از این کد ندارم خیلی متوجش نمی شوم
کد تو برنامه نوشتم ولی از server م خطا میگیره تو این قسمت چی باید بزارم
باید تنظیمات خاصی قبلش انجام بدم
ممنون میشم برام بیشتر توضیح بدید.

سلام دوباره

همون‌طور که دستان گفتن، باید اول بگید خطایی که می‌گیره چیه تا ما ببینیم چه می‌شه کرد! اما این که چه حوری می‌شه با بانک ارتباط کرد، بدون این که درگیر ویزاردهای VS شد، خوب ساده‌ترین مثالش رو تو این مقاله می‌تونید بخونید: لینک (http://www.vb-helper.com/howto_net_datagrid.html)

اگر بخوام مثال یک کد خیلی ساده رو بزنم که صرفا به یه DB وصل می‌شه و اطلاعات رو می‌گیره و در یک DG‌ نشون می‌ده، میشه همچین چیزی:



Imports System.Data.SqlClient

Public Class Form1

Private Const SELECT_STRING As String = _
"SELECT ID, FName, LName FROM tblContacts"

Private Const CONNECT_STRING As String = _
"Data Source=localhost;Initial Catalog=xxx;User Id=xxx;Password=xxx;"

' The DataSet that holds the data.
Private m_DataSet As DataSet

' Load the data.
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.dgContacts.DataMember = ""
Me.dgContacts.Dock = System.Windows.Forms.DockStyle.Fill
Me.dgContacts.Name = "dgContacts"
Me.dgContacts.Size = New System.Drawing.Size(416, 205)
Me.dgContacts.TabIndex = 0

Dim data_adapter As SqlDataAdapter

' Create the SqlDataAdapter.
data_adapter = New SqlDataAdapter(SELECT_STRING, CONNECT_STRING)

' Map Table to Contacts.
data_adapter.TableMappings.Add("Table", "tblContacts")

' Fill the DataSet.
m_DataSet = New DataSet()
data_adapter.Fill(m_DataSet)

dgContacts.DataSource = m_DataSet.Tables("tblContact")
End Sub

' Save any changes to the data.
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If m_DataSet.HasChanges() Or Not m_DataSet.HasChanges() Then
Dim data_adapter As SqlDataAdapter
Dim command_builder As SqlCommandBuilder

' Create the DataAdapter.
data_adapter = New SqlDataAdapter(SELECT_STRING, CONNECT_STRING)

'Dim UpdateCommand As New System.Data.SqlClient.SqlCommand(UPDATE_STRING)
'data_adapter.UpdateCommand = UpdateCommand

' Map Table to Contacts.
data_adapter.TableMappings.Add("Table", "tblContacts")


' Make the CommandBuilder generate the
' insert, update, and delete commands.
command_builder = New SqlCommandBuilder(data_adapter)

' Save the changes.
data_adapter.Update(m_DataSet)
End If
End Sub
End Class


که البته در مثال بالا از یک DataSource استفاده شده، اما حتی با یه DataTable هم به راحتی و با کد ساده‌تری همون کارا رو می‌شد کرد. ضمنا در دات نت ۲ به جای DG از DGV = DataGridView استفاده می‌شه.