PDA

View Full Version : ویرایش اطلاعات GridView



hr_3303
پنج شنبه 18 خرداد 1391, 21:01 عصر
سلام دوستان.من یک GridView دارم که میخوام از خاصیت Edit خودش اطلاعات رو ویرایش کنم.
توی SQLDATASOURCE تبه UPDATE دستور
UPDATE AkhbarSite SET Akhbar=@Akhbar, Nevisandeh=@Nevisandeh رو نوشتم.کار میکنه ولی میره تغییرات رو توی کل اطلاعات میده.لطفا" یکی از دوستان راهنمایی کنه.
متشکرم

TeacherMath
جمعه 19 خرداد 1391, 00:54 صبح
خوب باید از where ID=@ID استفاده کنی .حالا برای شما کلید اصلی ID ممکنه یه چیز دیگه باشه.

hr_3303
جمعه 19 خرداد 1391, 05:28 صبح
خوب باید از where ID=@ID استفاده کنی .حالا برای شما کلید اصلی ID ممکنه یه چیز دیگه باشه.


دوسته خوبم این کارو که کردم،هیچ تغیراتی نمیکنه.دستورم اینه
UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE (ID = @ID)

لطفا یکی از دوستان کمکم کنه.

hr_3303
جمعه 19 خرداد 1391, 06:25 صبح
از دوستان کسی راهنمایی نمی کنه.من توی این مسئله گیر کردم.لطفا" کمک کنید.

TeacherMath
جمعه 19 خرداد 1391, 10:26 صبح
کد های صفحه تو نشون بده . فیلدهای جدولتو نشون بده .توی جدولت باید یک کلید اصلی وجود داشته باشه.

hr_3303
جمعه 19 خرداد 1391, 11:04 صبح
کد های صفحه تو نشون بده . فیلدهای جدولتو نشون بده .توی جدولت باید یک کلید اصلی وجود داشته باشه.


دوست عزیز.بیشتر توضیح میدید.چیکار باید کنم.متوجع نمی شم.

hr_3303
جمعه 19 خرداد 1391, 11:29 صبح
وقتی این کد رو مینویسم
UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE (ID = 14)
میره ردیف 14 جدول رو ویرایش میکنه.نمی دونم چیکار باید کنم که همون ردیفی که من انتخاب میکنم ویرایش بشه.لطفا یکی از دوستان کمک کنه.من گیر کردم.

aspmaker
جمعه 19 خرداد 1391, 11:40 صبح
UpdateCommand شما باید اصلاح بشه!

WHERE [ID] = @original_ID

zgolestan
جمعه 19 خرداد 1391, 14:41 عصر
وقتی این کد رو مینویسم
UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE (ID = 14)
میره ردیف 14 جدول رو ویرایش میکنه.نمی دونم چیکار باید کنم که همون ردیفی که من انتخاب میکنم ویرایش بشه.لطفا یکی از دوستان کمک کنه.من گیر کردم.

شما هر عددی جلوی WHERE بنویسی، همون رو ویرایش میکنه. مثلا اگر میخوای خبری رو که کدش 12 هست رو ویرایش کنی ، باید بنویسی :
" UPDATE AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE CODE='12' "
البته شما به جای CODE ، اسم فیلد جدول خودت رو بنویس.

hr_3303
جمعه 19 خرداد 1391, 16:21 عصر
شما هر عددی جلوی WHERE بنویسی، همون رو ویرایش میکنه. مثلا اگر میخوای خبری رو که کدش 12 هست رو ویرایش کنی ، باید بنویسی :
" UPDATE AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE CODE='12' "
البته شما به جای CODE ، اسم فیلد جدول خودت رو بنویس.

دوست عزیز من اینو میدونستم که هر عددی جلوی where بزارم همون ویرایش میشه.من میخوام وقتی روی GridView ردیف مثلا 5 کلیک میکنم،خود برنامه شماره ID یا ردیف اونو در بیاره و همون ویرایش بشه.
لطفا" یکی از دوستان راهنمایی کنه.

hr_3303
جمعه 19 خرداد 1391, 17:31 عصر
از دوستان ، از مدیران این تاپیک،از مدیران این سایت ،کسی نمی تونی منو راهنمایی کنه.

aspmaker
جمعه 19 خرداد 1391, 18:27 عصر
دوست عزیز شما وقتی به SqlDataSource یک کوئری رئ اختصاص میدی که از دیتابیس فیلدهای شما رو بخونه، تو همون مقطع هم دستورات Update, Insert, Delete و ... هم نوشته شده و آماده هست!
برای امتحان کردن این موضوع کافیه که:
1- SqlDataSource رو توی صفحه قرار بده و در قسمت Configuration گزینه Advanced و بعد Generate Insert, Update... رو فعال کن.
2- یه گرید اضافه کن به صفحت و اون رو با SqlDataSource ست کن

حالا توی قسمت کد صفحه که بری کوئری های ایجاد شده رو می بینی و می تونی اون چیزی که می خوای رو ایجاد کنی.

* تنها مشکل شما توی شرط WHERE هست!!

موفق باشید.

hr_3303
جمعه 19 خرداد 1391, 18:37 عصر
دوست خوبم،با تشکر از شما
من دستوری که نوشتم،اینه.نمی دونم توی قسمت Where چی باید بنویسم.

UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE (ID = @ID)

aspmaker
جمعه 19 خرداد 1391, 18:45 عصر
اگر فرض رو بر این بزاریم که سایر کدها و کوئری هاتون درسته، این مقدار رو در انتها قرار بدین:

WHERE [ID]=@orginal_ID
پارامتر orginal_ID نامی هست که پیش فرض برای ID در SqlDataSource در نظر گرفته میشه!

hr_3303
جمعه 19 خرداد 1391, 19:59 عصر
اینو نوشتم
UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE [ID]=@orginal_ID
ولی بازم کار نمی کنه.لطفا بگید چرا جواب نمی گیرم.

aspmaker
جمعه 19 خرداد 1391, 20:17 عصر
شما کوئریتون رو بزارید تا Update رو بشه درآورد ازش.

hr_3303
جمعه 19 خرداد 1391, 20:31 عصر
شما کوئریتون رو بزارید تا Update رو بشه درآورد ازش.

کوئریتون یعنی چی؟من تازه کارم.از این چیزا نمی دونم.به زبان ساده تر بگو،لطفا"

aspmaker
جمعه 19 خرداد 1391, 20:34 عصر
دستور Select ی که میره جدولتون رو می خونه و فیلدهاتون رو میاره و داخل GridView قرار میده.

hr_3303
جمعه 19 خرداد 1391, 20:47 عصر
خوب ببین دوست خوبم
من جدولی دارم به اسم Akhbarsite که 3 تا فیلد داره ID-Nevisandeh-Akhbar
توی Sqldatasource توی تبه select اینو نوشتم SELECT ID, Akhbar, Nevisandeh FROM dbo.AkhbarSite
توی تبه Update اینو نوشتم
UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE (ID = @orginal_ID)

اینم SQLDATASOURCE


<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:MyDatabaseConnectionString2 %>"
SelectCommand="SELECT ID, Akhbar, Nevisandeh FROM dbo.AkhbarSite"
DeleteCommand="DELETE FROM AkhbarSite WHERE Id=@Id"
UpdateCommand="UPDATE dbo.AkhbarSite SET Akhbar = @Akhbar, Nevisandeh = @Nevisandeh WHERE (ID = @orginal_ID)">
<DeleteParameters>
<asp:Parameter Name="Id" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Akhbar" />
<asp:Parameter Name="Nevisandeh" />
<asp:Parameter Name="orginal_ID" />
</UpdateParameters>
</asp:SqlDataSource>






اینم Gridview



<











asp:GridViewID="GridView2"runat="server"DataSourceID="SqlDataSource3"





AutoGenerateColumns="False">





<Columns>





<asp:BoundFieldDataField="ID"HeaderText="ID"InsertVisible="False"





SortExpression="ID"/>





<asp:BoundFieldDataField="Nevisandeh"HeaderText="Nevisandeh"





SortExpression="Nevisandeh"/>





<asp:BoundFieldDataField="Akhbar"HeaderText="Akhbar"





SortExpression="Akhbar"/>





<asp:CommandFieldShowEditButton="True"/>





</Columns>





</asp:GridView>

aspmaker
جمعه 19 خرداد 1391, 22:08 عصر
این کد ها رو جایگزین SqlDataSource فعلیت کن...

<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:MyDatabaseConnectionString2 %>"
SelectCommand="SELECT ID, Akhbar, Nevisandeh FROM dbo.AkhbarSite"
DeleteCommand="DELETE FROM AkhbarSite WHERE [ID] = @orginal_ID"
OldValuesParameterFormatString="original_{0}"
UpdateCommand="UPDATE dbo.AkhbarSite SET [Akhbar] = @Akhbar, [Nevisandeh] = @Nevisandeh WHERE [ID] = @orginal_ID">
<DeleteParameters>
<asp:Parameter Name="Id" />
</DeleteParameters>
<SelectParameters>
<asp:QueryStringParameter Name="ID" QueryStringField="ID" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Akhbar" Type="String" />
<asp:Parameter Name="Nevisandeh" Type="String" />
<asp:Parameter Name="orginal_ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>

hr_3303
شنبه 20 خرداد 1391, 20:31 عصر
این کد ها رو جایگزین SqlDataSource فعلیت کن...

<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:MyDatabaseConnectionString2 %>"
SelectCommand="SELECT ID, Akhbar, Nevisandeh FROM dbo.AkhbarSite"
DeleteCommand="DELETE FROM AkhbarSite WHERE [ID] = @orginal_ID"
OldValuesParameterFormatString="original_{0}"
UpdateCommand="UPDATE dbo.AkhbarSite SET [Akhbar] = @Akhbar, [Nevisandeh] = @Nevisandeh WHERE [ID] = @orginal_ID">
<DeleteParameters>
<asp:Parameter Name="Id" />
</DeleteParameters>
<SelectParameters>
<asp:QueryStringParameter Name="ID" QueryStringField="ID" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Akhbar" Type="String" />
<asp:Parameter Name="Nevisandeh" Type="String" />
<asp:Parameter Name="orginal_ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>

سلام.این کد رو هم جایگزین کردم،ولی جواب نمی ده.لطفا" از یه روش دیگه هم شده بگید،چیکار باید کنم.

aspmaker
شنبه 20 خرداد 1391, 20:40 عصر
هیچ پیغامی یا اروری نمیده؟؟
این روش درستش هست، نمیدونم چرا به مشکل خوردید!

بهترین کار اینه که یه صفحه Temp درست کن و
1- یه SqlDataSource و یه GridView توی صفحه بنداز
2- به SqlDataSouce توی صفحه Table مورد نظرت رو معرفی کن و بعد در قسمت Advanced تیک گزینه مربوط به Update,Insert & Delete رو بزن

اینجوری میتونی کد صحیح رو پیدا کنی و استفاده کنی!

موفق باشید.

hr_3303
شنبه 20 خرداد 1391, 20:50 عصر
هیچ پیغامی یا اروری نمیده؟؟
این روش درستش هست، نمیدونم چرا به مشکل خوردید!

بهترین کار اینه که یه صفحه Temp درست کن و
1- یه SqlDataSource و یه GridView توی صفحه بنداز
2- به SqlDataSouce توی صفحه Table مورد نظرت رو معرفی کن و بعد در قسمت Advanced تیک گزینه مربوط به Update,Insert & Delete رو بزن

اینجوری میتونی کد صحیح رو پیدا کنی و استفاده کنی!

موفق باشید.


دوست عزیز ،با تشکر از شما که به بنده محبت دارید.
لطفا بیشتر توضیح بدید.

aspmaker
شنبه 20 خرداد 1391, 20:53 عصر
کدوم مورد رو براتون توضیح بدم؟
کجاش رو مشکل دارید؟

hr_3303
شنبه 20 خرداد 1391, 21:09 عصر
بهترین کار اینه که یه صفحه Temp درست کن .
بی زحمت اینو بهم بگو.

TeacherMath
شنبه 20 خرداد 1391, 21:50 عصر
این یه نمونه است.

hr_3303
شنبه 20 خرداد 1391, 22:12 عصر
با تشکر از دوستان خوبم (TeacherMath و Aspmaker).
با نمونه برنامه دوستم TeacherMath حل شد.
متشکرم.خیلی زحمت کشیدید.