در visual studio 2005 چطوری میشه با پایگاه داده SQL ارتباط برقرار کرد؟دستوراتی که لازم هست می دونم . ولی نمی دونم با چه ترتیبی وکجا این دستورات رو به کار ببرم.اگر کسی بلده با جزییات کامل برام توضیح بده...
در visual studio 2005 چطوری میشه با پایگاه داده SQL ارتباط برقرار کرد؟دستوراتی که لازم هست می دونم . ولی نمی دونم با چه ترتیبی وکجا این دستورات رو به کار ببرم.اگر کسی بلده با جزییات کامل برام توضیح بده...
با enviromentكار كردي
تلفن بده تا برات توضيح بدم
من تازه asp.net رو شروع کردم. میشه کاملا برام بنویسی که چطوری باید با پایگاه داده کار کرد؟ هم ارتباط با پایگاه داده وهم فراخوانی اطلاعات و....
نكات مختصري در رابطه با SQL SERVER و برقراري ارتباط با VB
بهمراه چند مثال كوچك از نحوه برنامه نويسي
بادوروش مي توان براي SQL Server (S.S) برنامه نويسي نمود:
1- Using Record Set
2- Using Stored Procedure
در روش اول از ADO استفاده مي نمائيم كه ADO سه تا Objects دارد :
1- Connection
2- Command
3- Record Set
براي محيطهاي غير Relational خصوصا در اينترنت :
4- Stream
5- Record
سه طريق بكار گرفتن ADO :
1- ADO data control (ويژوالي)
2- Data Environment(ويژوالي)
3- Pure Programming
-------------------------------------------------------------------------------------------
مثال1 : كد VB : )برقراري ارتباط با S.S )
Private Sub Frame2_cammand1_click()
Dim R As Long
Dim con As New ADODB.Connection
con.Open "Provider= SQLOLEDB;Data Source= uqd02s01;initial Catalog = Northwind,''sa'',''1234''"
con.Execute "Update Employees Set LastName='Roy' where EmloyeID=1 ", R
con.CommitTrans
End Sub
------------------------------------------------------------------------------
مثال2: كد VB : (Record set )
Private Sub Frame2_Command3_Click()
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
con.Open "Provider= SQLOLEDB;Data Source= uqd02s01;initial Catalog = Northwind,''sa'',''1234''"
With rst
.ActiveConnection = con.ConnectionString
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = "select productID, Unitprice From products where CategoryID=1 orderBy 1"
.Open
End With
rst.MoveNext
End Sub
براي نمايش اطاعات در Grid :
Set DataGrid1.datasource= rst
------------------------------------------------------------------------------
SERVER SIDE PROGRAMMING:
در سمت سرور در 2 مكان مي توان برنامه نويسي نمود :
1- As an script in Query analyzer
متغيرها ابتدا بايستي تعريف Declare شوند و حتما بايستي با علامت @ شروع شود. كه همه انواع فيلدها بغير از Timestamp را مي توان تعريف نمود. ضمنا متغير از نوع Cursor نيــز مي توان داشت (Cursor همان ركورد ست است ولي در سرور ، بنابراين سرعت آن نسبت به ركورد ست بسيار بالاتر است . زيرا در سرور باري ايجاد نمي كند و درمواقعيكه اطلاعات بايستي درون يك Grid توسط كاربر مشاهده شود پردازشها را در Cursor انجام نمي توان داد و باتوجه به اينكه Set based تعريف شود يا Record based سرعت آن متغير مي باشد.) :
Declare @code int
Declare @name varchar(20)
Declare @mycursor cursor
براي ذخيره كردن مقدار در متغير 2 دستور وجوددارد :
set @code=5 Select @code=5
set @name="name"
------------------------------------------------------------------------------
مثال : متوسط تعداد سفارشات براي هر كارمند چقدر است :
ديتا بيس انتخاب شده در Query Analyzer : Northwind
Declare @empcount INT , @ordcount INT
Select @empcount = count(EmployeeID) from Employees
Select @ordcount=count(OrderID) from Orders
Print CAST(@ordcount As real)/@empcount
تابع Cast همانند تابع Convert عمل مي كند.
------------------------------------------------------------------------------
2-As a stored procedure in stored procedure
2-1-System (Sp_…) مي باشد master در ديتا بيس
2-2- Extended (XP_…)
2-3- User Stored Procedure مورد استفاده برنامه نويسان و كاربران
اگر Sql-DMO را به VB اضافه كنيم ، مي توانيم Stored Procedure-SP داخل سرور بصورت Object oriented-O.O استفاده كنيم.
مزيت S.P :
دربانك بصورت كامپايل شده ذخيره شده و تمام پردازشها در سمت سرور انجام مي شود مگر اينكه ركورد ست تعريف كرده باشيم.
طريقه نوشتن S.P :
Stored procedure -- > Right click -- > New stored procedure
نكته : دستور select كه در S.P نوشته مي شود در VB بعنوان يك ركورد ست record Set برمي گردد./
CREATE PROCEDURE test
@p1 INT=5 , @p2 INT = 8 , @p3 INT Output ,@p4 CURSOR Varying Output
AS
Set @p1 = @p1*2
Set @p2 = @p2*3
Set @p3 = @p1 + @p2
Set @p4 = Cursor scroll For select employeeID,lastname,FirstName From employees Order By 1
Open @p4
Return(99)
------------------------------------------------------------------------------
Parametric Query in VB
براي پاس كردن پارامتر در ويژوال بيسيك به دو صورت ذيل كه مثال هركدام نيز آورده شده است مي توان عمل نمود :
1- Ad Loc Query
1-1- Building Query String.
1-2- Using Command Objects.
2- Stored procedure
مثال براي آيتم 1-1 :
Private Sub Command1_Click()
Dim MySQl As String
Dim CatID As Integer
CatID = Val(InputBox("Enter the categoryID :"))
MySQl = "Select count(productID) AS CD, Sum(Unitinstock) AS SumUN From Productes where categoryID = '" & CatID & " '"
End Sub
بخش با فونت قرمز نشاندهنده پاس كردن پارامتر CatID به Query مي باشد.
نكته مهم : در ويژوال بيسيك قانوني وجود دارد كه زمان صدا زدن تابع و يا متد Method درصورت اينكه بخواهيم خروجي داشته باشيم حتما بايستي پارامترها درداخل پرانتز باشند و درغير اينصورت نبايستي داخل پرانتز قرار گيرند./
------------------------------------------------------------------------------
مثال براي آيتم 2-1 :
Private Sub Command1_Click()
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim prodname As String
con.Open "Provider= SQLOLEDB;Data Source= uqd02s01;initial Catalog = Northwind,''sa'',''1234''"
With cmd
.ActiveConnection = con
.CommandText = "select productID,ProductName From products where productName like ?"
.CommandType = adCmdText
End With
cmd.Parameters(0) = prodname
End Sub
------------------------------------------------------------------------------
مثال براي آيتم2 :
Private Sub Command1_Click()
Dim cmd As New ADODB.Command
Dim num As Integer
With cmd
.ActiveConnection = con
.CommandText = "Test" -------------------------------- > Stored procedure نام
.CommandType = Adcmdstoredprocedure
End With
cmd.Parameters.Refresh
cmd.Parameters("@p3") = num
cmd.Parameters("@p3") = Int(Text1.text )
Print cmd("@p4")
cmd.Execute
End Sub
------------------------------------------------------------------------------
من خودم با ديتا اينوايرومنت كار مي كنم كه خيلي راحت تر از كدهاي بالاست ايميل من [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] است اگه خواستي تلفن بده برات توضيح بيشتر بدم