PDA

View Full Version : عدم قرارگرفتن Default Value در فیلد مورد نظر تیبل



A.Yousefi
جمعه 12 اسفند 1390, 21:23 عصر
سلام
من برای یکی از فیلدهای تیبلم مقدار پیش فرض صفر در نظر گرفتم و اون فیلد هم allow nulls هست،وقتی دارم از محیط sql به اون تیبل مورد نظرم رکورد اضافه میکنم و اون فیلد رو null میذارم جاش صفر میذاره
اما وقتی از تو محیط asp.net و از داخل GridView با استفاده از ساختار edit خود Grid اون یکی دیگه از فیلدهای اون رکورد مورد نظر از تیبل رو update میکنم جای اون فیلدش مقدار null میذاره در صورتی که من گفنتم جای null مقدار صفر بذار.
چرا اینجوری میکنه پس؟
چرا null میذاره پس تو اون فیلد؟

barnamenevisforme
جمعه 12 اسفند 1390, 21:33 عصر
سلام
توی بخش dataset designer روی سرفصل table دوبار کلیک کن تا صفحه. datasetnamedataset.vb باز شه بعد توی قسمت initialized یه همچین چیزی رو اضافه کن.
Partial Class tbl_tripsDataTable
Private Sub tbl_tripsDataTable_Initialized(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Initialized
distance_kmColumn.DefaultValue = 0
trip_time_hourColumn.DefaultValue = 0
End Sub

End Class

fakhravari
جمعه 12 اسفند 1390, 21:34 عصر
کد دیتاسورس html صفحه رو بزارید.

A.Yousefi
جمعه 12 اسفند 1390, 21:42 عصر
سلام
توی بخش dataset designer روی سرفصل table دوبار کلیک کن تا صفحه. datasetnamedataset.vb باز شه بعد توی قسمت initialized یه همچین چیزی رو اضافه کن.
Partial Class tbl_tripsDataTable
Private Sub tbl_tripsDataTable_Initialized(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Initialized
distance_kmColumn.DefaultValue = 0
trip_time_hourColumn.DefaultValue = 0
End Sub

End Class

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

A.Yousefi
جمعه 12 اسفند 1390, 21:46 عصر
کد دیتاسورس html صفحه رو بزارید.



<


asp:SqlDataSource ID="SqlDataSource1" runat="server"



ConnectionString="<%$ ConnectionStrings:OFConnectionString %>"



DeleteCommand="DELETE FROM [Pro] WHERE [ID] = @ID"



InsertCommand="INSERT INTO [Pro] ([Name], [GID]) VALUES (@Name, @GID)"



SelectCommand="SELECT Pro.ID,Pro.Name,Pro.GID,PG.Name

FROM Pro LEFT JOIN PG

ON Pro.GID=PG.ID"






UpdateCommand="UPDATE [Pro] SET [Name] = @Name, [GID] = @GID WHERE [ID] = @ID">



<DeleteParameters>



<asp:Parameter Name="ID" Type="Int32" />



</DeleteParameters>



<InsertParameters>



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



<asp:Parameter Name="GID" Type="Int32" />



</InsertParameters>



<UpdateParameters>



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



<asp:Parameter Name="GID" Type="Int32" />



<asp:Parameter Name="ID" Type="Int32" />



</UpdateParameters>



</asp:SqlDataSource>

fakhravari
جمعه 12 اسفند 1390, 21:50 عصر
مشکل شما دقیقا نمیدونم یعنی شما میگید برای ویرایش در گرید مقدار اون فیلدی که میگید null میشه.
این کد بروزرسانی
UpdateCommand="UPDATE [Pro] SET [Name] = @Name, [GID] = @GID WHERE [ID] = @ID">
که 2 فیلد ویرایش میشودن.
اگر فیلد مورد نظر شما در بین این 2 باشن خوب هر مقداری که در edit باشه بعد بروز رسانی مقدارش عوض میشه.
دقیقا نمیدونم فیلد مورد نظر شما چی؟

A.Yousefi
جمعه 12 اسفند 1390, 22:03 عصر
من پروژرو ضمیمه کردم.
شما رو edit روی گریدویو کلیک کن و نام محصول رو تغییر بده با اینکار گروه محصول میپره.
چ.ن فیلد GID تو گرید نمایش داده نمیشه و براش null در نظر میگیره اما من میخوام بجای null براش 0 بذاره.
اگه از تو خود تیبل اینکار رو انجام بدین و فیلد gid رو خالی بذارین 0 میذاره جاش اما اونجا null میذاره،چرا؟

barnamenevisforme
جمعه 12 اسفند 1390, 22:14 عصر
توی بخش datasources روی dataset راست کلیک کن و گزینه edit dataset in designer رو انتخاب کن.
بعد روی نام datatable مورد نظرت دوبار کلیک کن تا صفحه کدنویسی باز بشه.حالا از لیست رویه هایی که سمت چپ-بالای صفحه قرار داره initialized رو انتخاب کن و
fieldnameColumn.DefaultValue = 0 رو توی اون قراربده

A.Yousefi
جمعه 12 اسفند 1390, 22:25 عصر
توی بخش datasources روی dataset راست کلیک کن و گزینه edit dataset in designer رو انتخاب کن.
بعد روی نام datatable مورد نظرت دوبار کلیک کن تا صفحه کدنویسی باز بشه.حالا از لیست رویه هایی که سمت چپ-بالای صفحه قرار داره initialized رو انتخاب کن و
fieldnameColumn.DefaultValue = 0 رو توی اون قراربده
من منظورتون از بخش DataSources و DataSet رو متوجه نمیشم!!
نمیدونم کجاس.
حالا یا مشکل از خنگی بیش از حد منه یا اینکه شما باید بیشتر توضیح بدین که بازم میشه خنگیه من!!

fakhravari
جمعه 12 اسفند 1390, 22:41 عصر
متاسفانه دیتابیس برای من باز نمیشه.
فقط فیلد ها رو بگید
<asp:Parameter Name="GID" Type="Int32" DefaultValue="0" />

InsertCommand="INSERT INTO [RatingPost] ([Rating], [UserName], [PostID]) VALUES (12, @UserName, 15)"