PDA

View Full Version : مبتدی: ارسال پارامتر به sp و نمايش نتيجه در DATATable



reza_edu
سه شنبه 24 اسفند 1389, 21:12 عصر
سلام به همه دوستان سوال من در ارتباط با sp و دريافت نتيجه اون هست ميدونم صحبت در اين باره بسيار شده اما من نتونستم بعد از مطالعه اين مطالب به نتيجه برسم (تازه كارم :خجالت:) كاري كه ميخواهم انجام بدم به اين صورت هست كه مقدار شرط رو براي sp از برنامه اپليكيشن ارسال كنم و نتيجه اون كه يك جدول هست رو داخل يك ديتا تيبل قرار بدم sp كه من نوشتم در زير نشون دادم USE [KaveExtentScience]
GO
/****** Object: StoredProcedure [dbo].[Suppliant_SELECT] Script Date: 03/15/2011 22:26:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Suppliant_SELECT]
@gender nvarchar(50)
as
BEGIN
SELECT FirstNameFa as [نام ],LastNameFa as [نام خانوادگي] FROM KaveExtentScience.dbo.Info_Suppliant where GenderFa = @gender
if @@ERROR<>0 ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END
--GO
تا اونجا كه ديدم براي ارسال و دريافت پارامتر از برنامه به ديتابيس از SQLcommand استفاده ميشه حالا من يه سوال داشتم چه جوري ميشه هم پارامتر به spارسال كرد هم با نتيجه اون ديتا تيبل رو پر كرد؟ اگه ممكنه با كد من رو راهنمائي كنيد (اگه ممكنه از SQLDATAreader استفاده نشه ،البته اگه چاره اي نبود بشه:ناراحت:)

reza_edu
چهارشنبه 25 اسفند 1389, 08:53 صبح
سلام راستي دوستان من نميخام با روش زير اين كار رو انجام بدم چون كاراي برنامه پائين مياد Dim cmd As New SqlClient.SqlCommand
With cmd
.Connection = conn
.CommandType = CommandType.StoredProcedure
.CommandText = "Suppliant_SELECT"
.Parameters.AddWithValue("@gender", "مرد")
End With
Dim dr As SqlClient.SqlDataReader, dt As New DataTable
Dim naColumn As DataColumn = New DataColumn()
naColumn.DataType = System.Type.GetType("System.String")
naColumn.ColumnName = "FirstNameFa"
dt.Columns.Add(naColumn)
Dim lsColumn As DataColumn = New DataColumn()
lsColumn.DataType = System.Type.GetType("System.String")
lsColumn.ColumnName = "LastNameFa"
dt.Columns.Add(lsColumn)
Dim row As DataRow
conn.Open()
dr = cmd.ExecuteReader
While dr.Read
row = dt.NewRow
row(0) = dr(0).ToString
row(1) = dr(1).ToString
dt.Rows.Add(row)
End While
DataGridView1.DataSource = dt
conn.Close()
نميشه از متدي مثل fill كه تو ديتا آداپتر هست استفاده كرد؟

reza_edu
پنج شنبه 26 اسفند 1389, 23:40 عصر
شرمنده جواب رو اگه يكم جستجو ميكردم بود :گیج: اينم لينك جواب http://www.dotnetspider.com/forum/79728-how-send-stored-procedure-parameter- (http://www.dotnetspider.com/forum/79728-how-send-stored-procedure-parameter-using-Sql.aspx)
using-Sql.aspx (http://www.dotnetspider.com/forum/79728-how-send-stored-procedure-parameter-using-Sql.aspx)
ايكاش قبل از زدن اين تاپيك يكم بيشتر جستجو ميكردم.

salehbagheri
جمعه 27 اسفند 1389, 00:28 صبح
سلام راستي دوستان من نميخام با روش زير اين كار رو انجام بدم چون كاراي برنامه پائين مياد

برای کارایی بهتر، نظر من این بود که از LINQ استفاده میکردید ...

reza_edu
جمعه 27 اسفند 1389, 08:13 صبح
من تا بحال از linq استفاده نكردم ميشه يه نمونه كد كوچيك به عنوان سر نخ بديد تا من برم دنبالش ممنون ميشم.

salehbagheri
جمعه 27 اسفند 1389, 09:58 صبح
من تا بحال از linq استفاده نكردم ميشه يه نمونه كد كوچيك به عنوان سر نخ بديد تا من برم دنبالش ممنون ميشم.

به عنوان نمونه میتونم این آموزشهای فارسی رو به شما معرفی کنم:

LinqToObject (http://how2learnasp.net/article.aspx?code=38f43032-7e25-4cb0-ba49-5e3eaa05b793)

LinqToSQL (http://how2learnasp.net/article.aspx?code=f280288c-4814-4ce6-9f91-de64da7f38c1)