السلام عليكم
لو فرضنا لدينا جدولين
جدول mas
id - name
جدول det
id - dates
كيف عمل اجراء مخزن
انا عملت اجراء مخزن لواحد جدول مع ترانزيكشين واشتغل تمام لكن لما اعمل الجدويلين في نفس الاجراء كما ماستر ديتيلز يعطي خطأ التالي
Procedure or function masdet has too many arguments specified
وكيف عمل ذلك ب vbnet
الاجراء هو
ALTER PROCEDURE [dbo].[masdet]
@id int,
@name nvarchar (20),
@idd int,
@dates DATE
AS
SET NOCOUNT ON
SET XACT_ABORT ON
set @id=@@identity
BEGIN
BEGIN TRAN
INSERT INTO mas (id,name) values (@id,@name)
INSERT INTO det values (@idd,@dates)
if @@ERROR = 0
commit
else
begin
raiserror('عفوا حدث خطأ الرجاء اعادة المحاولة',14,1)
rollback
end
end
وهذا جزء من الكود في الفجوال بيسك نت
CmdInsert.Parameters.Add("@Id", SqlDbType.Int).Value = Me._BandId
CmdInsert.Parameters.Add("@Name", SqlDbType.NVarChar, 20).Value = Trim(Me.TextBox2.Text)
For i As Integer = 0 To dt.RowCount - 1
CmdInsert.Parameters.Add("@Idd", SqlDbType.Int).Value = Me._BandId
CmdInsert.Parameters.Add("@dates", SqlDbType.Date).Value = CDate(Me.dt.Rows(i).Cells(0).Value)
Next
If MyMod.conn.State = ConnectionState.Open Then MyMod.conn.Close()
MyMod.conn.Open()
CmdInsert.ExecuteNonQuery()
MyMod.conn.Close()
Beep()
If MsgBox(MyMod.Me_MsgOkAdd, MyMod.Me_MsgQuestion, MyMod.Me_MsgCaption) = vbYes Then
CmdInsert.Dispose()
Else
CmdInsert.Dispose()
Me.Close()
End If