Forms Data Controls :: Passing Null Values To ObjectDataSource
Jan 4, 2011
This is an ASP.NET 3.5 web app written in C# using VS2008 and connecting to an MS SQL backend. It is using ad hoc queries in a strongly typed dataset to pull from the database. This query (shortened for clarity) is designed to allow optional input of parameters (a requirement) or pull all records if no parameters are input. It works normally in SQL Server Management Studio with the addition of Declare and Set statements and it works normally in the TableAdapter's Query Builder:
[Code]....
The markup contains this ObjectDataSource, which is tied to the TableAdapter with the above query:
[Code]....
The problem I'm having is in passing null values to the ODS to feed to the query. Tying the ODS parameters directly to the dropdownlists and textboxes didn't work. Got an error message that there was a mismatched data type. Tried several combinations of code to feed the right values to the ODS parameters but couldn't find one that worked. Is the problem in the query or am I setting up the code-behind wrong? Here's the code:
I am using VS 2008 SP1. My also have included CSS Friendly adapter [URL] in my project ( I mentioned this because my GridView Empty data template is not showing when using GridView's CCS Friendly adapter). I have a GridView and a DetailsView. When a record in GridView is selected its details information is shown in the Details View. Type of Data source I am using is ObjectDataSource. My Insert and Update methods works perfectly. It is only the Delete method that is passing null values to the underlying object delete method. My source codes for both the UI, BLL, DAL is shown below
I've got a gridview connected to an objectdatasource which is bound to some custom objects in my code (code is below). The problem I'm having is that the value passed into my update method is the old value, not the new value. Thoughts?
Partial Public Class ManageUsersControl Inherits System.Web.UI.UserControl Dim auth As AuthenticationSection Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Users.DataBind() End Sub End Class
Public Class Users Private sName As String Private sPassword As String Public Sub New() End Sub Public Sub New(ByVal nm As String, ByVal pass As String) Name = nm Password = pass End Sub Public Property Name() As String Get Return sName End Get Set(ByVal value As String) sName = value End Set End Property Public Property Password() As String Get Return sPassword End Get Set(ByVal value As String) sPassword = value End Set End Property End Class
Public Class UserData Dim auth As AuthenticationSection Shared userTable As List(Of Users) Public Sub New() auth = CType(WebConfigurationManager.GetSection("system.web/authentication"), AuthenticationSection) End Sub Public Function CreateData() As List(Of Users) Dim dt As New List(Of Users) For Each user As FormsAuthenticationUser In auth.Forms.Credentials.Users dt.Add(New Users(user.Name, user.Password)) Next userTable = dt Return userTable End Function Public Function SelectMethod() As List(Of Users) If userTable Is Nothing Then Return CreateData() Else Return userTable End If End Function Public Function UpdateMethod(ByVal userInfo As Users) As Integer Dim user As FormsAuthenticationUser = auth.Forms.Credentials.Users(userInfo.Name) Dim pass As String Dim sha As New SHA1CryptoServiceProvider() Dim enc As New System.Text.ASCIIEncoding() pass = enc.GetString(sha.ComputeHash(enc.GetBytes(userInfo.Password))) userTable.Add(New Users(userInfo.Name, pass)) user.Password = pass Return 1 End Function End Class
I have req where i have to check the value coming from db is null or not and assign value according to that.Problem here is the field datatype is 'Datetime' so all the time when I tried to use the below line of code its giving me error.How can I pass a null value to datetimefield if value coming from db is null.
I use FormView with ObjectDataSource and class. I have a TextBox binded to a DateTime? property. When TextBox.Text property is empty i want to set the property of my class to null but the value is 1.1.1 00:00:00. My Workaround:
[Code]....
Is there a way to set this property to null without this workaround? Is this a bug in DataSource or is this a feature by design?
Code: SELECT one, two, three, four FROM tblFixedLine_onenet_callLog WHERE (one LIKE '%' + ISNULL(@one,'') + '%') AND (two LIKE '%' + ISNULL(@two, '') + '%') AND (three LIKE '%' + ISNULL(@three, '') + '%') AND (four LIKE '%' + ISNULL(@four, '') + '%') ORDER BY one, two, three, four @one, @two, @three and @four are textboxes on my ASP.NET page all of which by default have no value(therefore i assumed NULL).If i test the SQL in the VS2005 SQL Configuration (and put the values in manually) it works but the ASP page returns no results... i assume therefore the Textbox value is "" not Null.
I have a GridView control with a header template with Text Boxes so users can input new data for a new row. I need to bind the text property of each TextBox in the header row with the insert parmaeters in my ObjectDataSource.
I am trying to update record in gridview using ObjectDataSource (with conflict detection)The following is the ObjectDataSource
[Code]....
Update Method is as follows
[Code]....
In ObjectDataSourceProducts_Updating(..) event , I am checking objects which are being sent to UpdateProduct(..) method. I found that both the objects " original_ProductDB and productDB " have the same the values. When I click "Update" in GridView after entering new value, ObjectDataSource is not picking new value
i am using a gridview in my web page,i used to bind the database records to the gridview..my columns are name,empid,company name,pl leave,sl leave,total leave taken here total leave taken is not a database fields,in the page i want to fill the records once loaded pl leave and sl leave is added and display in the total leave taken column..it working properly when all pl ans sl columns fill with numbers,if some pl and sl leave having blank values.it showing an error like input sting was not in correct format..this is my code
I have a typical gridview/formview master control setup. When I try to update or insert I don't get any errors but it also doesn't work. When I try to insert data all I get are null values and when I update, none of the values are updated. The formview looks like its working, but just doesn't. The primary key is an identity and it auto-increments by one.
In this datelastmodified is Datagrid Column Name. I m displaying that column value in DIV. Now, I want to display another column Value in that DIV. that column name is Document Type. May I know how to pass that value.
I have a gridview, which has columns has ChildID,ChildName, course.
In the gridview, i have a radiobutton, which will select one of the rows at a time.I have a button in the page(The button is not related to the gridview). After selecting a row in the gridview, and when the user clicks on the button, i want to pass the data selected in the grid to the button.
The button is used to redirect users to other pages. so i want to use the columns as querystrings to pass to the page. I dont want to use the hyperlinkfield attached to the grid.
I am having real trouble at the moment trying to input NULL values into a field. what I want is, using VB, the ability to insert into parameters NULL values.
I followd Brian Orrell LINQ tutorial for paging/sorting and created a gridview bound to an ObjectDataSource through a method call which gets data from adatabase. My form includes two buttons with a textbox next to each one of them. I need to be able to populatte th egridview depending on the button that was pressed, I cannot figure out how signal my method which button was pressed. [Code].... [URL]
I am having a formview control with paging enabled. It's a simple page used for viewing pictures. (It's from the personal web site starter kit with some modification)
[Code]....
I would like the formview to pass not only the pageindex value but also the Next or previous picture's unique ID called in my case PictureID?
i am trying to develop forum page in asp.net using c#. I have listed forum threads lists as Title, Description, Posted On, Posted By like that using Listview. Now my idea is if the user clicks anyone of the title from the list the control will move to new page. there based on thread title selected from listview i would like to display the reply msgs posted for that. i am struggling lot here.
have a form where I insert record via DetailView control. I have some string fields. For each string field (nvarchar in sql) I have defined the Default Value in the SQL SERVER (2008) as ''. Also I have added to each InsertParameter of the DetailsView a DefaultValue="".Yet still, if the user enters no value for one of the string fields, NULL is inserted into the table.
Whenever you turn off the visibility of a column in Gridview, on Edit, the value becomes null because its never bound. The only way I know of stopping this behavoir is to put it in the DataKeyName list. Is there any other way to prevent this? I have quite a few columns that will not be displayed in this "release" but I want there for future extensibility. Also, in some cases these values will be used for calculations but the user should not see them. Is there no toggle property for "non-visible" items to remain "unchanged" or something of the sort?
the problem arise when this datacolumn in my database have a null value, it throws an error ....how can I get this to work so that DataBinder.Eval can take a null value?
m using a listview and an object data source in my application, with optimistic concurrency control.i have only 2 columns in the listview: category_ID and category_name;when i try to delete an item, an error message is generated saying that one of the old values populated by the list view is null, i performed debugging, and found that the category_ID old value is populated correctly, while the category_name old value is populated as nulli can't find a problem in the code, i executed the delete command in the query builder directly and it worked fine,
I have 2 columns (name and address) in a gridview which are defined as linked buttons. Now when i click on a record in the first row (name) i am able to pass that value (selected name) to another page with rowcommand. Now i am trying to click on the second row (address) on a record but am not able to pass that value to the second page. Don't actually know how to define this in the code below. The first row (name) has to redirect to one page (this what i have already accomplished) and the second row (address) has to redirect to another page
<asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:LinkButton ID="LnkBtnName" runat="server" CommandArgument='<%# Container.DataItem("Name") %>' Text='<%# Eval("Name") %>' CommandName="go" >LinkButton</asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Address"> <ItemTemplate> <asp:LinkButton ID="LnkBtnAddress" runat="server" CommandArgument='<%# Container.DataItem("Address") %>' Text='<%# Eval("Address") %>' CommandName="go" >LinkButton</asp:LinkButton> </ItemTemplate> </asp:TemplateField> Protected Sub GridView_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView.RowCommand Dim strName As String = CType(e.CommandArgument, String) Response.Redirect(String.Format("Test.aspx?id={0}", strName, False)) End Sub
CODE ON PAGE II:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load LblName.Text = Request.QueryString("id") End Sub