PDA

View Full Version : ارور در اپدیت



pedram_ns
دوشنبه 06 مهر 1388, 17:14 عصر
سلام
من یک دیتابیس دارم که در اون username و Password و اطلاعات دیگه هست.username به کلید اولیه تبدیل شده.
در login سایتم یوزرنیم رو می گیرم و در یک session می ذارم و در صفحه شخصی افراد اون رو می خونم و اطلاعاتشون رو طبق یوزرنیم بدست اومده نشون می دم.
حالا می خوام اطلاعات نمایش داده شده به و سیله Dataview اپدیت هم بشه.
برای اینکه اپدیت کار کنه حتما باید کلید اولیه دیتابیس که اینجا یوزرنیمه هم انتخاب بشه و لی هنگام اپدیت ارور می ده که یک یا چند پارامتر انتخاب نشده.
اگه این کار رو در یک صفحه معمولی انجام بدم درست کار می کنه ولی در صفحات شخصی که با session باز می شن ارور می ده و فکر کنم به Session ربط داره .
اگه کسی فهمید که من چی نوشتم حتما جواب بده(چون من خودم هم درست نمی دونم چی نوشتم):لبخند:

nazaninam
سه شنبه 07 مهر 1388, 08:16 صبح
کد ی که نوشتی رو قرار بده
در ضمن پیشنهاد می کنم به جای Session از سیستم Authenticate دات نت که با Cookie کار می کنه استفاده کنی

pedram_ns
سه شنبه 07 مهر 1388, 08:49 صبح
راستش فکر کنم امنیت کوکی پایین تر باشه و اگه مرورگر کاربر هم استفاده از کوکی رو غیر فعال کنه هم مشکل ایجاد می شه اگه اشتباه می کنم لطفا راهنمای کنید.
این کد اروره:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: No value given for one or more required parameters.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

این هم کد های منه:

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataKeyNames="Usr" DataSourceID="AccessDataSource1" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
SortExpression="ID" />

<asp:BoundField DataField="Usr" HeaderText="Usr" ReadOnly="True"
SortExpression="Usr" />
<asp:BoundField DataField="Pass" HeaderText="Pass" SortExpression="Pass" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />

<asp:BoundField DataField="Address" HeaderText="Address"
SortExpression="Address" />
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/Database.mdb"


SelectCommand="SELECT * FROM [Company] WHERE ([Usr] = ?)"
UpdateCommand="UPDATE [Company] SET [ID] = ?, [Pass] = ?, [Name] = ?, [Address] = ? WHERE (([Usr] = ?) OR ([Usr] IS NULL AND ? IS NULL))">
<SelectParameters>
<asp:SessionParameter Name="Usr" SessionField="user" Type="String" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="Usr" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />

<asp:Parameter Name="Pass" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Admin" Type="String" />

<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="Usr" Type="String" />
</UpdateParameters>

</asp:AccessDataSource>

nazaninam
سه شنبه 07 مهر 1388, 09:37 صبح
این پارامتر Admin چیه ؟ کجای Update ازش استفاده کردی؟
در ضمن از نظر امنیتی اصلا اینطور نیست در ضمن اگر Cookie مرورگر غیر فعال باشه شما قادر به استفاده از Session هم نخواهید بود !!

pedram_ns
سه شنبه 07 مهر 1388, 16:00 عصر
کد های من طولانی بود و یک کمی شون رو پاک کردم Admin رو هم باید پاک می کردم اشتباهی باقی مونده.
2.پس شما کوکی رو پیشنهاد می کنین یعنی از نظر امنیتی مطمین باشم؟

bahar_engineer
چهارشنبه 08 مهر 1388, 11:25 صبح
به هر حال این خطا مفهومش اینه که فیلد یا فیلدهایی هست توی بانکتون که شما برای آپدیت اونها اقدام نکردین و فقط یه تعداد محدودی از فیلدها رو می خواین آپدیت کنید که تعدادشون با فیلدهای بانک فرق می کنه

در صورتی که نمی خواین فیلدی رو آپدیت کنین باید همون مقدار قبلی رو بهش بدین

یعنی توی کدتون بهش دستور بدین که مقدار قبلی رو ذخیره کنه توی پایگاه داده