PDA

View Full Version : سوال: مشکل در UPDATE و DELETE در DetailsView



VB.NET2005
چهارشنبه 06 شهریور 1387, 14:17 عصر
با سلام :
دوستان من برای Update اطلاعات از کنترل DetailsView استفاده می کنم . و کد Update مربوطه رو اینجوری ست کردم :


UPDATE Users SET Name = @Name, Num = @Num , Pass = @Pass WHERE Num = @Num

و Delete هم :


DELETE FROM Users WHERE Num = @Num

ولی در هنگام اجرا با این Error که ضمیمه کردم مواجه میشم ؟ ؟ ؟
ممنون میشم منو راهنمایی کنید

بــا تــشــکــر

VB.NET2005
چهارشنبه 06 شهریور 1387, 19:27 عصر
دوستان نظری ندارند ؟ ؟ ؟

merlin_vista
چهارشنبه 06 شهریور 1387, 19:49 عصر
اين جور كه من فهميدم . پارامترها مقدار دهي نشده است (يا درست اين كار انجام نشده است .) . چك كن ببين پارامتر ها را دست مقدار دهي كردي.

TNZ187
چهارشنبه 06 شهریور 1387, 20:23 عصر
سلام
می بخشید که در تاپیک شما سوال می کنم ، ولی فکر کنم که علاوه بر مشکل مقدار دهی پارامترها ( اگه Bind کنید مشکل حل می شه ) در فرمان Update هم یک مشکلی وجود داره و اون هم اینکه :
اگر شما مقدار Num را به عنوان شرط برای پیدا کردن رکورد انتخاب کرده اید ، چرا دیگه اون رو Update هم می کنید ؟ فکر کنم یک خطای منطقی وجود داره . اگه می خواهید از پارامتر های قدیمی ( قبل از Update ) استفاده کنید ، از خصوصیت OldValuesParameterFormatString در دیتاسورس ها استفاده کنید ، بتهر نیست .( البته جسارته ها !) . مثلا به جای @NUM در WHER از Old_nume@ استفاده کنید ( در حالتی که مقدار خصوصیت یاد شده Old_{0}a هستش ( a زیادیه )

VB.NET2005
چهارشنبه 06 شهریور 1387, 21:20 عصر
اين جور كه من فهميدم . پارامترها مقدار دهي نشده است (يا درست اين كار انجام نشده است .) . چك كن ببين پارامتر ها را دست مقدار دهي كردي.
با تشکر :
منظورتون قسمت DataField در DetailsView هست ؟
البته من از AccessDataSource استفاده می کنم و بعد از ست کردن DetailsView ، Select Command رو بایند کردم .

ممکنه از Access باشه ؟

VB.NET2005
پنج شنبه 07 شهریور 1387, 18:49 عصر
دوستان خواهشا" کمک کنید . . .

kezack
پنج شنبه 07 شهریور 1387, 19:36 عصر
دوست عزيز ميشه اون قسمت از كد رو بزاري همون كاري كه دوستمون TNZ187 (http://barnamenevis.org/forum/member.php?u=54470) كفت انجام بده از نمي دونم ولي از خطاش معلومه كه در مقدار دهي اشتباه مي كني

kezack
پنج شنبه 07 شهریور 1387, 20:33 عصر
deletesh كه نبايد كاري داشته باشه وليي جه جوري مقادير رو Update ميكني يعني مقدار دهي مي كني با كد در detail View !! ميشه كد رو بزاري

VB.NET2005
پنج شنبه 07 شهریور 1387, 23:27 عصر
deletesh كه نبايد كاري داشته باشه وليي جه جوري مقادير رو Update ميكني يعني مقدار دهي مي كني با كد در detail View !! ميشه كد رو بزاري
با تشکر از اینکه یه توجهی کردیــــن

دوست عزیز درست منظورتونو متوجه نشدم ، من ابتدا یک AccessDataSource ایجاد و بعد در قسمت Query مربوط به Update دستور بالا رو نوشتم وسپس به DetailsView بایند کردم .
منظورتون همین بوووود ؟ (به غیر از این کار دیگه ای انجام ندادم)
بعد ار این کار دیدم فیلد های درون جدولم به DetailsView اضافه شد . :گریه:

VB.NET2005
پنج شنبه 07 شهریور 1387, 23:33 عصر
اینم کد قسمت Design



<tbody>
<tr>
<td valign="top" colspan="2" dir="rtl" style="height: 13px" align="right">
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataSourceID="AccessDataSource1" Height="112px" Width="256px" AllowPaging="True">
<Fields>
<asp:BoundField DataField="Name" HeaderText="نام دانش آموز : " SortExpression="Name" >
<ControlStyle Font-Names="Tahoma" Font-Size="8pt" />
<ItemStyle Font-Names="Tahoma" Font-Size="8pt" />
</asp:BoundField>
<asp:BoundField DataField="Num" HeaderText="شماره شناسنامه : " SortExpression="Num" >
<ControlStyle Font-Names="Tahoma" Font-Size="8pt" />
<ItemStyle Font-Names="Tahoma" Font-Size="8pt" />
</asp:BoundField>
<asp:BoundField DataField="Pass" HeaderText="کلمه عبور : " SortExpression="Pass" >
<ControlStyle Font-Names="Tahoma" Font-Size="8pt" />
<ItemStyle Font-Names="Tahoma" Font-Size="8pt" />
</asp:BoundField>
<asp:CommandField ButtonType="Button" CancelText="لغو" DeleteText="حذف" EditText="ویرایش"
InsertText="ثبت" NewText="ثبت" SelectText="انتخاب" ShowDeleteButton="True" ShowEditButton="True"
ShowInsertButton="True" SortExpression="Name" UpdateText="ویرایش">
<ControlStyle Font-Names="Tahoma" Width="50px" Font-Size="9pt" />
<ItemStyle Font-Names="Tahoma" Font-Size="9pt" />
</asp:CommandField>
</Fields>
</asp:DetailsView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Database.mdb"
InsertCommand="INSERT INTO Users(Name, Num, Pass) VALUES (@Name, @Num, @Pass)"
SelectCommand="SELECT * FROM [Users]" DeleteCommand="DELETE FROM Users WHERE Num = @Num" UpdateCommand="UPDATE Users SET Name = @Name, Num = @Num , Pass = @Pass WHERE Num = @Num"></asp:AccessDataSource>
</td>
</tr>
</tbody>

kezack
جمعه 08 شهریور 1387, 00:58 صبح
ببين من اين كارو كردم فقط يك فيلد در بانكم اضافه كردم ازنم Id كه از نوع AutoNumber هست كه جواب داد
نمونشو ببين شايد بكارت بياد

VB.NET2005
جمعه 08 شهریور 1387, 13:24 عصر
با تشکر ، مثال شما کاملا جواب میده ولی واسه من هنوز مشکل داره میشه یه نگاهی بندازین ؟

kezack
جمعه 08 شهریور 1387, 13:40 عصر
ميشه از دوباره بزاريد فايل رو باز نمي كنه

VB.NET2005
جمعه 08 شهریور 1387, 13:54 عصر
بفرمایید . . .

kezack
جمعه 08 شهریور 1387, 15:03 عصر
دوست عزيط برنامتون رو ديدم بانك Accsese رو عوض كن و همون كارارو بكن فكر كنم مشكل حل ميشه من اينكارو كردم مشكل حل شد و Update شد اكه درست نشد برنامه رو اينجا مي زارم

kezack
جمعه 08 شهریور 1387, 15:51 عصر
در ضمن اكر در Detail View يك فيلد ديكر به نام Id باشه اونوقت Update جواب ميده وقتي برش مي داري جواب نمي ده
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

kezack
جمعه 08 شهریور 1387, 18:03 عصر
ببين اين درست شد يعني رو سيستمم كار مي كنه Update هم ميكنه:لبخندساده:

VB.NET2005
جمعه 08 شهریور 1387, 21:29 عصر
با تشــکر بله کار میکنه ، مشکلم حل شد .

ممنون

VB.NET2005
دوشنبه 11 شهریور 1387, 21:19 عصر
با سلام میخاستم بدونم اگه از SP واسه وارد کردن اطلاعات به بانک استفاده کنیم چه طور میشه در DetailsView هم ازون استفاده کرد .

من CommandType رو به Stored Procedure تغییر دادم ولی در پارامترها مشکل دارم . . .

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