Solved

ASP.NET Item.Insert Null Value

Posted on 2009-04-14
9
561 Views
Last Modified: 2012-05-06
How can I add a NULL value to a dropdown list that is Dataound?

I have tried
Items.Insert(0, New ListItem("", String.Empty))
Items.Insert(0, New ListItem("", Nothing))

but the records are not being inserted as NULLS
0
Comment
Question by:ITHelper80
9 Comments
 
LVL 25

Expert Comment

by:Luis Pérez
ID: 24138526
If the dropdown list is databound, try to insert the null/empty value not directly to the dropdownlist, but on the data source. For example, if your data source is a Dataset obtained from database query, insert a new empty file in the dataset itself before to databind to the dropdownlist. That will work for sure.
0
 
LVL 3

Expert Comment

by:BalkisBr
ID: 24138564
You can only use .Add() in this case.

try this:
YourDropDown.Items.Add(new ListItem())

[]'s
0
 
LVL 14

Expert Comment

by:GiftsonDJohn
ID: 24138921
Hi,

The following code snippet works.
            DataTable dt = new DataTable();

            dt.Columns.Add("ID");

            dt.Columns.Add("Name");

            

            DataRow dr;
 

            dr = dt.NewRow();

            dr[0]= 1;

            dr[1]="mathews";

            dt.Rows.Add(dr);
 

            dr = dt.NewRow();

            dr[0]=2;

            dr[1]="Julie";

            dt.Rows.Add(dr);
 

            dr = dt.NewRow();

            dr[0]=3;

            dr[1]="King";

            dt.Rows.Add(dr);

            

            dr=dt.NewRow();

            dr[0]=4;

            dr[1]="Romeo";

            dt.Rows.Add(dr);
 

            dr=dt.NewRow();

            dr[0]=5;

            dr[1]="Mose";

            dt.Rows.Add(dr);
 

            DropDownList1.DataSource = dt;

            DropDownList1.DataTextField = "Name";

            DropDownList1.DataValueField = "ID";

            DropDownList1.DataBind();
 

            DropDownList1.Items.Insert(0, new ListItem(string.Empty, string.Empty));

Open in new window

0
 
LVL 14

Expert Comment

by:GiftsonDJohn
ID: 24138975
But there is a limitation when you try to insert into the database. An empty string will be insert into the database. This is because the SelectedValue of the DropDownList will return a string.

To handle this you have to handle in the code behind.

If you have a typed dataset, automatically Visual Studio will create a function named

DataSet1.DataTable1.SetColumnNull();


0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 22

Expert Comment

by:prairiedog
ID: 24139082
>>>but the records are not being inserted as NULLS
Why do you need to insert a NULL value in a DropDownList? You can insert an empty string in DDL, not null. Maybe I misunderstood your problem?
0
 
LVL 6

Author Comment

by:ITHelper80
ID: 24139298
Well Im fine with inserted an empty string but the problem is I am running a SELECT query against the database and I dont know how to filter out the empty string....

WHERE [TableName] IS NOT NULL doesnt work
0
 
LVL 14

Expert Comment

by:GiftsonDJohn
ID: 24139483
You have to write a stored procedure like this.

Create Procedure dbo.sp_InsertValue(@EName varchar(150) = null)
AS
Begin
             Insert into [TableName] values (@EName)
END

and on the page code behind you have to add the parameter @EName  to the SqlCommand object only when the selected index of the dropdown list  > 0

or other way

Create Procedure dbo.sp_InsertValue(@EName varchar(150))
As
Begin
     IF len(@EName)>0
         Insert into [TableName[ Values (@EName)
    Else
        Insert into [TableName] Values (null)
END
0
 
LVL 6

Author Comment

by:ITHelper80
ID: 24144303
I was able to solve this problem by using a different method. Thanks to all who offered a suggestion
0
 
LVL 6

Accepted Solution

by:
ITHelper80 earned 0 total points
ID: 24144308
Found different solution that worked for my purposes
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now