PDA

View Full Version : مشکل عجیب در ارسال مقدار به پایگاه



fa_karoon
شنبه 01 خرداد 1389, 09:28 صبح
سلام دوستان دارم از تعجب شاخ در میارم در یک صفحه دو گرید ویو دارم وقتی کلید Edit را می زنم تا یکی از آنها را ویرایش کنم تغییر اعمال نمی شود یعنی عمل آپدیت صورت نمی گیرد و بعد از زدن دکمه آپدیت آن فیلد با همان مقدار قبلی است در حالی که در همان صفحه گرید ویو دیگری دارم که این کار را انجام می دهد؟
یا اینکه وقتی مقادیری را درون تکست باکس و ادیتور می نویسم و در جدولی Insert می کنم اصلا مقدار درون این کنترل ها را نمی خواند و null برمی گرداند

فیلدهای من از نوع nvarchar هستند و هنگام ادیت کردن در Detailsview خطا می دهد که این نوع با نوع ntext سازگار نیست

خواهش می کنم کمکم کنید چون اصلا دلیل این مشکلات را نمی دانم که بخواهم فکری به حالشان کنم

ali_zzr
شنبه 01 خرداد 1389, 10:29 صبح
کد گرید ویو رو بذار اینجا.چون اینجوری هیچ کاری نمیشه کرد

fa_karoon
شنبه 01 خرداد 1389, 20:15 عصر
<asp:GridView ID="SentFileGridView" runat="server" AutoGenerateColumns="False"
DataKeyNames="Content_ID" DataSourceID="SqlDataSource6" AllowPaging="True"
Width="493px">
<Columns>
<asp:BoundField DataField="Content_Size" ReadOnly="true" HeaderText="ںë§ںھى"
SortExpression="Content_Size" />
<asp:BoundField DataField="User_Name" HeaderText="ں©«ںé ¬§ى ¢ي«ل"
SortExpression="User_Name" ReadOnly="True" />
<asp:CheckBoxField DataField="Content_upHold" HeaderText="¢ںیی§"
SortExpression="Content_upHold" />
<asp:TemplateField HeaderText="¥¨ه کںêé">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Eval("Content_Name") %>'
TextAlign="Left" />
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="Content_Deleted" HeaderText="¥¨ه ê¤ںھی"
SortExpression="Content_Deleted" />
<asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource6" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"
DeleteCommand="DELETE FROM [Content_Table] WHERE [Content_ID] = @original_Content_ID AND [Content_Name] = @original_Content_Name AND [Content_Size] = @original_Content_Size AND [Content_upHold] = @original_Content_upHold AND [Content_Deleted] = @original_Content_Deleted"
InsertCommand="INSERT INTO [Content_Table] ([Content_Name], [Content_Size], [Content_upHold], [Content_Deleted]) VALUES (@Content_Name, @Content_Size, @Content_upHold, @Content_Deleted)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [Content_Name], [Content_ID], [Content_Size], [Content_Deleted], [Content_upHold], Users_Table.User_Name FROM [Content_Table], Users_Table WHERE [Content_Date] = @Content_Date AND Content_Table.User_ID = Users_Table.User_ID "
UpdateCommand="UPDATE [Content_Table] SET [Content_Name] = @Content_Name, [Content_Size] = @Content_Size, [Content_upHold] = @Content_upHold, [Content_Deleted] = @Content_Deleted WHERE [Content_ID] = @original_Content_ID AND [Content_Name] = @original_Content_Name AND [Content_Size] = @original_Content_Size AND [Content_upHold] = @original_Content_upHold AND [Content_Deleted] = @original_Content_Deleted">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="Content_Date"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_Content_ID" Type="Int32" />
<asp:Parameter Name="original_Content_Name" Type="String" />
<asp:Parameter Name="original_Content_Size" Type="String" />
<asp:Parameter Name="original_Content_upHold" Type="Boolean" />
<asp:Parameter Name="original_Content_Deleted" Type="Boolean" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Content_Name" Type="String" />
<asp:Parameter Name="Content_Size" Type="String" />
<asp:Parameter Name="Content_upHold" Type="Boolean" />
<asp:Parameter Name="Content_Deleted" Type="Boolean" />
<asp:Parameter Name="original_Content_ID" Type="Int32" />
<asp:Parameter Name="original_Content_Name" Type="String" />
<asp:Parameter Name="original_Content_Size" Type="String" />
<asp:Parameter Name="original_Content_upHold" Type="Boolean" />
<asp:Parameter Name="original_Content_Deleted" Type="Boolean" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="Content_Name" Type="String" />
<asp:Parameter Name="Content_Size" Type="String" />
<asp:Parameter Name="Content_upHold" Type="Boolean" />
<asp:Parameter Name="Content_Deleted" Type="Boolean" />
</InsertParameters>
</asp:SqlDataSource>


تازه یه مشکل دیگه وقتی تو اون گرید ویویی که درست کار می کرد Update می کنم این عمل انجام می شه اما مقدار فیلد عنوان اون رکورد رو پاک می کنه

PhoenixNet
شنبه 01 خرداد 1389, 20:24 عصر
سلام
اگه با Edit مشکل داری احتمالا DataBind رو در Page_Load انجام میدی در نتیجه وقتی ویرایش رو میزنی مقادیر قبلی Bind میشن و دوباره در جدول ذخیره میشوند.

اگه اینجوریه


protectedvoid Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
کدهای مربوط به دیتا بایند رو اینجا بزار
}
}


اگر نه کد هاتو بزار ببینیم:لبخند:

fa_karoon
یک شنبه 02 خرداد 1389, 00:28 صبح
دوستان من اصلا کد نویسی نکرده ام برای این گرید ویو همونطور که کدش رو گذاشته ام یه SqlDataSource به صورت Wizard تعریف کرده ام (کلیک روی گرید ویو و انتخاب دیتا بیس برای گرید) بنابراین کد خاصی نیست که بذارم برای آپدیت کردن هم از Edit خود گرید استفاده می کنم
من اطلاعات این گرید رو از چند جدول می گیرم فکر می کنم مشکل از این هست؟ لطفا کد Select رو نگاه کنید