Prysson
asked on
Help with nullable variables and a webmethod
I have a web methods that is set up like so
public DataSet updateAppRecord(int app_id, string app_acro, string app_name, int? app_type_id, int control_level_id, bool active)
As you can see there is one variable that is "nullable" int?
It has to be nullable because a value will not ALWAYS be passed though with this...sometimes it will be null
on the back end I call it like so
DataSet ds = almsvc.updateAppRecord(app _id.Value, app_acro, app_name, app_type_id.Value, ctl_level_id.Value, active.Value);
I ahve also tried it like so
DataSet ds = almsvc.updateAppRecord(app _id.Value, app_acro, app_name, app_type_id, ctl_level_id.Value, active.Value);
I have to beleive that the issue is occuring because of the int? for the app_type_id app_type_id.Value would be the way you woudl normally cast an int? to an int variable....but if it is int? to int? my understanding is you dont need the.Value. Why do I get a SOAP exception when I try to pass the int? variable to the web service when the web service is asking for an int? variable?
public DataSet updateAppRecord(int app_id, string app_acro, string app_name, int? app_type_id, int control_level_id, bool active)
As you can see there is one variable that is "nullable" int?
It has to be nullable because a value will not ALWAYS be passed though with this...sometimes it will be null
on the back end I call it like so
DataSet ds = almsvc.updateAppRecord(app
I ahve also tried it like so
DataSet ds = almsvc.updateAppRecord(app
I have to beleive that the issue is occuring because of the int? for the app_type_id app_type_id.Value would be the way you woudl normally cast an int? to an int variable....but if it is int? to int? my understanding is you dont need the.Value. Why do I get a SOAP exception when I try to pass the int? variable to the web service when the web service is asking for an int? variable?
at your database design, is this variable declared as nullable? (Allow null)
int will be automatically converted into int? So that should not be the issue. I dont think DBNull will be converted into integer. Before calling the web method check if the value passed is DBNull
ASKER
1. The database allow for null values in all columns.
2. a step through of the code during testing shows that no dbnull values are being passed into the web method.
Whats more..I removed all possibility of null in teh variables by using conversion methods converting null entries into "0" or "false" depending on the variable...so no null are being passed no nulls are being expected and nullas are allowed bythe database...still I am getting the error...I am totally confused now..I cant see any reason why this would be happening.
2. a step through of the code during testing shows that no dbnull values are being passed into the web method.
Whats more..I removed all possibility of null in teh variables by using conversion methods converting null entries into "0" or "false" depending on the variable...so no null are being passed no nulls are being expected and nullas are allowed bythe database...still I am getting the error...I am totally confused now..I cant see any reason why this would be happening.
ASKER
Ok I have eliminated the interface and even the web service..the error is occuring in the BLL and DAL layers compiled into a dll.
A method that fills a datatble querying data from the database give a foreign key constraint error...Now this I totally dont understand. I have revied the datatable and its data..none of the data violates foreign key constraints and the datatable allows nulls for all columns...unless thats it..is it a violation of a foreign key constraint to have a null value?
A method that fills a datatble querying data from the database give a foreign key constraint error...Now this I totally dont understand. I have revied the datatable and its data..none of the data violates foreign key constraints and the datatable allows nulls for all columns...unless thats it..is it a violation of a foreign key constraint to have a null value?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.