PDA

View Full Version : آپدیت گریدویو با SqlDataSource



aliblue
جمعه 07 مهر 1391, 08:26 صبح
سلام.من توی صفحه ام یک گریدویو دارم که با SqlDataSource وstoredProcedure یه اطلاعاتی رو توش نمایش میدم و ویرایش میکنم.قبلا هم با گریدویو و SqlDataSource و رویه های ذخیره شده دیگری امتحان کرده بودم ولی تا حالا به این مشکل بر نخورده بودم.
System.ArgumentException: A ControlID must be specified in ControlParameter 'ClID'.
که ClID نام کلید اصلی هست.و در گریدویو هم DataKeyNames رو برابر ClID قرار دادم.
اینم قسمتی از کدهای SqlDataSource:

<UpdateParameters>
<asp:ControlParameter Name="ClID" Type="Int32" />
<asp:Parameter Name="vaziat" Type="Boolean" />
<asp:Parameter Name="tozih" Type="String" />
</UpdateParameters>

و اینم قسمتی از کدهای گریدویو:

<Columns>
<asp:BoundField DataField="ClID" HeaderText="ClID" InsertVisible="False"
ReadOnly="True" SortExpression="ClID" />
<asp:BoundField DataField="name" HeaderText="name"
SortExpression="name" />
<asp:CheckBoxField DataField="Vaziat" HeaderText="Vaziat"
SortExpression="Vaziat" />
<asp:BoundField DataField="tozih" HeaderText="tozih" SortExpression="tozih" />
</Columns>

خواهش میکنم راهنمایی کنید.

aliblue
جمعه 07 مهر 1391, 08:52 صبح
فهمیدم.اشتباهی از طریق ویزارد SqlDataSource پارامتر ClID رو برابر کنترل قرار داده بودم.برابر none قرار دادم درست شد.اما الان یه پیغام دیگه میده که میدونم چیه به خاطر اینه که پارامترهای لازم رو به storedProcedure نمیفرسته.حالا باید چیکار کنم؟
System.Data.SqlClient.SqlException: Procedure or function ******* has too many arguments specified.

aliblue
جمعه 07 مهر 1391, 09:43 صبح
وقتی به جای storedProcedure به طور دستی کوئری رو در UpdateQuery در ویزارد SqlDataSource مینویسم هیچ مشکلی نداره.ولی وقتی دقیقا همین کوئری که در یک storedProcedure نوشتم رو میخوام اجرا کنم از پارامتر ها ایراد میگیره:
System.Data.SqlClient.SqlException: Procedure or function ******* has too many arguments specified.