لمن له معرفة باستخدام SqlHelper
أريد استرجاع قيمة حقل المفتاح الرئيسي - مع العلم أنه تلقائي Identity - بعد عملية الإضافة في نموذج معين
وسأعطيكم طريقة العمل التي قمت بها ليسهل عليكم الحل
قمت بإنشاء Stored Procedure لإدخال الحقول وهو التالي
ALTER PROCEDURE [Insert_GLB_Users] @User_Name varchar(50), @User_Password varchar(50) AS SET NOCOUNT ON begin transaction INSERT INTO [GLB_Users] ( [User_Name], [User_Password]) VALUES ( @User_Name, @User_Password ) if @@error<>0 begin rollback transaction return 0 end else begin commit transaction return @@identity end
مع العلم أن المفتاح الرئيسي هو User_ID
بعد ذلك قمت بإنشاء Class معرف فيه فنكشن ويحتوي الكلاس كاملا على الكود التالي
Imports System.Data Imports System.Data.SqlClient Imports System.Configuration Imports Microsoft.ApplicationBlocks.Data Public Class Cls_GLB_Users Private _User_ID As Integer Private _User_Name As System.String Private _User_Password As System.String Private _errMessage As String Public Property errMessage() As String Get Return _errMessage End Get Set(ByVal Value As String) _errMessage = Value End Set End Property Public Property User_ID() As Integer Get Return _User_ID End Get Set(ByVal value As Integer) _User_ID = value End Set End Property Public Property User_Name() As System.String Get Return _User_Name End Get Set(ByVal value As System.String) _User_Name = value End Set End Property Public Property User_Password() As System.String Get Return _User_Password End Get Set(ByVal value As System.String) _User_Password = value End Set End Property Public Function AddNew() As Boolean Dim bolAdd As Boolean = False Try SqlHelper.ExecuteReader(connection, "Insert_GLB_Users", _User_Name, _User_Password) bolAdd = True Catch ex As Exception _errMessage = GenericExceptionHandler(ex) End Try Return bolAdd End Function End Class
لاحظ الفنكشن في الأعلى وهو لعملية الإضافة وقمت باستدعائه من خلال نموذج وأدخلت الكود التالي في زر الإضافة
Try
Dim oData As New Cls_GLB_Users
With oData
.User_Name = txtUser_Name.Text
.User_Password = txtUser_Password.Text
If .AddNew Then
Dr = SqlHelper.ExecuteScalar(oCommon.connection, CommandType.Text, "select scope_identity() as returnidentity")
lblError.Text = Dr("returnidentity")
Else
lblError.Text = .errMessage
End If
End With
Catch ex As Exception
lblError.Text = ex.Message
End Tryأعتقد الآن أن الفكرة وضحت لمن أراد المساعدة
وما أريده هو إظهار ال Identity في النموذج
وشكرا



