HII,
i have a column in sql srver 2000 of data type bit.I have a checkbox in my page. i want to assign bit value to the column when the check box is checked and un checked,but i am getting errors when assigning true /false to the column.

Datatype bit takes the value 0 or 1.....if true then 1
if false then 0

when iam assigning false to the coulmn iam getting error
The name 'False' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
here is my code

if (facultychecked.Checked == true)
{
anndept.announceToFaculty =true;
}
else
{
anndept.announceToFaculty =false;
}
AnnouncementManager.CreateAnnouncement(anndept);


}

yes this is because.......it consist only true or false.....if 1 then true and if 0 then false

ur code must b like this

if (facultychecked.Checked == true)
{
anndept.announceToFaculty =1;
}
else
{
anndept.announceToFaculty =0;
}
AnnouncementManager.CreateAnnouncement(anndept);
}

if u pass 1 (or greater than 1)to ur bit datatype column....then it make is as True
if u pass 0 to ur bit datatype column in sqlserver then....it make it as false.....
Pass (1 or 0 ) value.....it automatically....insert True or False

when iam using 1 and 0 iam getting error

CS0031: Constant value '1' cannot be converted to a 'bool'

if (facultychecked.Checked == true)
{
anndept.announceToFaculty =1;
}
else
{
anndept.announceToFaculty =0;
}

u can not assign 1 or 0 to a bool type variable.......
use Int type variable......and then assign 1 or 0

can u explain more clearly

do this thing.....take one int type variable....


Int32 i;
if (facultychecked.Checked == true)
{
i =1;
}
else
{
i=0;
}

and now u have ur value in "i" ....insert the value of "i" in ur bit type column of ur table....

if (facultychecked.Checked == true)
{
k = 1;


}
else
{
k = 0;
}
anndept.announceToFaculty = k;

iam getting error
CS0029: Cannot implicitly convert type 'int' to 'bool'

"anndept.announceToFaculty " this function is of bool type change this function dear.........
change this function dear........

Dear if i had to change the column name ,y would i ask this question.i can not change the bool type of anncourse.announceToFaculty ,i can cast the type of k only

Dear.......u can not cast an integer value into a bool type variable.......u pass the value to ur Bit column according to 1 or 0...


do one thing........create a table in sql server........and insert 3 columns ("a","b" and "c") into them.....and use the Datatype Bit to all of them

Save the Table n give the name u want (like "abc")

now in Sql query analyzer..... write query for insert

insert into abc (a,b,c) values(1,0,1)

then see the result.....wat value is in ur a,b and c column

if u use this query like this insert into abc (a,b,c) values(true,false,true)
then it gives an error..........Try It Dear.........Not take much time........

greeny, can you please post the code where you "built" [anndept.announceToFaculty] ?
anndept is a boolean variable, which it can only be set to true and false. When you declared anndept, you declared it as a boolean. Is anndept the column you are trying to update? In order to help you, I gotta know where you set anndept and how you set it. When updating your table, you are probably using anndept.announceToFaculty directly in the query string. You cannot do this because your database column only accepts integers, therefore true and false never get enter because they are not integers. When you set your database variable, do a simple if else statement saying:

if (anndept.announceToFaculty == true)
{
'set your query parameter = 1
} else {
'set your query parameter = 0
}

And it will update how you wish.

hi shesaidimapregy,
seeing u in this forum after a long time.i have created a object for announcemetBO

public struct AnnouncementBO
{
   public bool announceToFaculty;
}

and called this object to my ui page

  AnnouncementBO anndept = new AnnouncementBO();
 if (facultychecked.Checked == true)
            {
                              anndept.announceToFaculty =  true;

            }
            else
            {
                              anndept.announceToFaculty = false;

            }

and iam assgining this object to the businesslogic layer.
iam getting error of invalid cast error ,can not convert bool to int
sorry that i could not reply earlier

Member Avatar for fatihpiristine

no need facultychecked.Checked == true
use this. and it will work.

int k;
if (facultychecked.Checked)
{
k = 1;

}
else
{
k = 0;
}

the reason why you cannot set anndept.announceToFaculty to an integer (1 or 0) is because you declared it as a boolean [public bool announceToFaculty]. You can change it to an integer by setting the above declaration to "public int announceToFaculty] and you will be able to set it to (1 or 0). If it is required for you to have announceToFaculty as a boolean, create a second variable and make it an integer. This isn't needed as you can set any value within a parameter at the end of the struct anyway:

if (anndept.announceToFaculty.Checked) {
    'set parameter equal to 1
} else {
    'set parameter equal to 0
}

And you do not need to say:

if (facultychecked.Checked == true)

any checkbox referred to in code is defaulted to true. so saying "if (facultychecked.Checked)" is the same as saying "if (facultychecked.Checked == true)". It's just better programming, but not anything bad.

hi shesaidimapregy,
seeing u in this forum after a long time.i have created a object for announcemetBO
public struct AnnouncementBO
{
public bool announceToFaculty;
}
and called this object to my ui page
AnnouncementBO anndept = new AnnouncementBO();
if (facultychecked.Checked == true)
{
anndept.announceToFaculty = true;

}
else
{
anndept.announceToFaculty = false;

}
and iam assgining this object to the businesslogic layer.
iam getting error of invalid cast error ,can not convert bool to int
sorry that i could not reply earlier

wow. that's a long thread for a simple problem.

hi ,
i will explain u my problem clearly

        AnnouncementBO anndept = new AnnouncementBO();
        anndept.announcement = txtdescription.Text;
        anndept.announcementDate = DateTime.Parse(txtanndate.Text, new CultureInfo("fr-FR"));
        anndept.category = int.Parse(ddlcategory.SelectedItem.Value);
        anndept.deptID = -1;
        if (facultychecked.Checked )
        {

            anndept.announceToFaculty=true;
        }
        else
        {

            anndept.announceToFaculty =false;
        }
        AnnouncementManager.CreateAnnouncement(anndept);

this is my code for a click event
i have a business logic layer called announcementmanager in which we send the object anndept.anndept is a entity object

 public struct AnnouncementEO
    {

        public int deptID;
        public int courseID;
        public int batchID;
        public string announcement;
        public int category;
        public DateTime announcementDate;
        public bool announceToFaculty;
    }

i can not change the data type of announcetofaculty nor can i use another parameter.i should use only announceToFaculty.
but when i assign true /false to it iam getting error
The name 'False' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
when iam using 1/0 to anndept.announceToFaculty iam getting error

CS0031: Constant value '1' cannot be converted to a 'bool'

the column in the data base for announcetofaculty is declared bit

Sir, you have this right here:

public bool announceToFaculty;


Which means you can only assign true or false to it. If you are not allowed, change this part to:

public int announceToFaculty;

And assign 1/0.

The problem is solved ,i have converted announceToFaculty to int in ui page
and assigned that in businesslogic layer as follows
annEO.announceToFaculty = ann.announceToFaculty?1:0;
and this works perfectly.
thanks to every one who have replied

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.