السلام عليكــم ورحمـة الله وبركاتــه ،،
يوجد لدى مشكلة فى التعديل حيث يوجد جدول ادارات وبيه حقل الرقم والاسم والمدير وعند التعديل يقبل تعديل الاسم والمدير ولكن لا يقبل تعديل رقم الادارة لماذا حيث اننى وضعته pk
الكود بالاتى
Dim rowindex As Integer = DataGridView1.SelectedRows(0).Cells(0).Value
Dim name, super As String
Dim id As Integer
id = DataGridView1.Rows.Item(x).Cells(0).Value
name = DataGridView1.Rows.Item(x).Cells(1).Value
super = DataGridView1.Rows.Item(x).Cells(2).Value
cmd.Connection = cn
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "updatedept"
cmd.Parameters.Clear()
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = name
cmd.Parameters.Add("@super", SqlDbType.VarChar).Value = super
cmd.Parameters.Add("@oldid", SqlDbType.Int).Value = rowindex
cmd.ExecuteNonQuery()هنا اقوم بجلب رقم الادارة القديم واحفظه فى متغير rowindex حيث ان هذا الرقم هو المستخدم بدلالته التعديل ويظهر الخطاء الاتى
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
وهذا هو الprocedure
ALTER PROCEDURE [dbo].[updatedept]
-- Add the parameters for the stored procedure here
@id int,
@name varchar(50),
@oldid int,
@super varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
update dept set
id=@id,name=@name,super=@super
where id=@oldid
END
وشكرااااااااااااا