c# - Stored Procedure Returns Empty Values -


i have stored procedure performs select statement in order return user data session state on login. far, stored procedure has returned empty values when called clicking login button. have tested stored procedure in sql mgmt studio running after hard-coding input username , achieved desired results. have placed breakpoints in visual studio , found while username being sent correctly textbox in input, parameters being returned empty "". leads me believe problem formatting input parameter, can't figure out is. appreciated.

here c# method:

public static user getuser(int? id, string username) {  string selectbyid = "spselectuserbyid";  string selectbyusername = "spselectuserbyusername";  user u = new user();              string connstring = configurationmanager.connectionstrings["connectionstring"].connectionstring;  using (sqlconnection conn = new sqlconnection(connstring))  {   sqlcommand cmd = new sqlcommand();   cmd.commandtype = system.data.commandtype.storedprocedure;   if (string.isnullorempty(id.tostring()))   {    cmd = new sqlcommand(selectbyusername, conn);    cmd.parameters.add("@usernamein", sqldbtype.varchar).value = username.tostring();   }   else if (string.isnullorempty(username))   {    cmd = new sqlcommand(selectbyid, conn);    cmd.parameters.add("@userid", sqldbtype.int).value = id;   }    sqlparameter username = new sqlparameter();    sqlparameter password = new sqlparameter();    sqlparameter firstname = new sqlparameter();    sqlparameter middleinitial = new sqlparameter();    sqlparameter lastname = new sqlparameter();    sqlparameter userstar = new sqlparameter();    sqlparameter userrank = new sqlparameter();    sqlparameter userrankcode = new sqlparameter();    sqlparameter assignment = new sqlparameter();    sqlparameter shift = new sqlparameter();    sqlparameter contactphone = new sqlparameter();    sqlparameter phonetype = new sqlparameter();    sqlparameter email = new sqlparameter();    sqlparameter assignmentid = new sqlparameter();    sqlparameter shiftid = new sqlparameter();    username.parametername = "@username";    password.parametername = "@password";    firstname.parametername = "@firstname";    middleinitial.parametername = "@middleinitial";    lastname.parametername = "@lastname";    userstar.parametername = "@userstar";    userrank.parametername = "@userrank";    userrankcode.parametername = "@userrankcode";    assignment.parametername = "@assignment";    shift.parametername = "@shift";    contactphone.parametername = "@contactphone";    phonetype.parametername = "@phonetype";    email.parametername = "@email";    assignmentid.parametername = "assignmentid";    shiftid.parametername = "shiftid";    username.sqldbtype = system.data.sqldbtype.varchar;    password.sqldbtype = system.data.sqldbtype.varchar;    firstname.sqldbtype = system.data.sqldbtype.varchar;    middleinitial.sqldbtype = system.data.sqldbtype.varchar;    lastname.sqldbtype = system.data.sqldbtype.varchar;    userstar.sqldbtype = system.data.sqldbtype.int;    userrank.sqldbtype = system.data.sqldbtype.varchar;    userrankcode.sqldbtype = system.data.sqldbtype.varchar;    assignment.sqldbtype = system.data.sqldbtype.varchar;    shift.sqldbtype = system.data.sqldbtype.varchar;    contactphone.sqldbtype = system.data.sqldbtype.varchar;    phonetype.sqldbtype = system.data.sqldbtype.varchar;    email.sqldbtype = system.data.sqldbtype.varchar;    assignmentid.sqldbtype = system.data.sqldbtype.int;    shiftid.sqldbtype = system.data.sqldbtype.int;    username.size = 200;    password.size = 200;    firstname.size = 200;    middleinitial.size = 200;    lastname.size = 200;    userstar.size = 200;    userrank.size = 200;    userrankcode.size = 200;    userrankid.size = 200;    assignment.size = 200;    shift.size = 200;    contactphone.size = 200;    phonetype.size = 200;    email.size = 200;    assignmentid.size = 200;    shiftid.size = 200;    username.direction = system.data.parameterdirection.output;    password.direction = system.data.parameterdirection.output;    firstname.direction = system.data.parameterdirection.output;    middleinitial.direction = system.data.parameterdirection.output;    lastname.direction = system.data.parameterdirection.output;    userstar.direction = system.data.parameterdirection.output;    userrank.direction = system.data.parameterdirection.output;    userrankcode.direction = system.data.parameterdirection.output;    assignment.direction = system.data.parameterdirection.output;    shift.direction = system.data.parameterdirection.output;    contactphone.direction = system.data.parameterdirection.output;    phonetype.direction = system.data.parameterdirection.output;    email.direction = system.data.parameterdirection.output;    assignmentid.direction = system.data.parameterdirection.output;    shiftid.direction = system.data.parameterdirection.output;    cmd.parameters.add(username);    cmd.parameters.add(password);    cmd.parameters.add(firstname);    cmd.parameters.add(middleinitial);    cmd.parameters.add(lastname);    cmd.parameters.add(userstar);    cmd.parameters.add(userrank);    cmd.parameters.add(userrankcode);    cmd.parameters.add(assignment);    cmd.parameters.add(shift);    cmd.parameters.add(contactphone);    cmd.parameters.add(phonetype);    cmd.parameters.add(email);    cmd.parameters.add(assignmentid);    cmd.parameters.add(shiftid);    conn.open();    cmd.executenonquery();    u.username = username.value.tostring();    u.password = password.value.tostring();    u.firstname = firstname.value.tostring();    u.middleinitial = middleinitial.value.tostring();    u.lastname = lastname.value.tostring();    u.userstar = convert.toint16(userstar.value);    u.userrank = userrank.value.tostring();    u.userrankcode = userrankcode.value.tostring();    u.assignment = assignment.value.tostring();    u.assignmentid = convert.toint16(assignmentid.value);    u.shift = shift.value.tostring();    u.shiftid = convert.toint16(shiftid.value.tostring());    u.contactphone = contactphone.value.tostring();    u.phonetype = phonetype.value.tostring();    u.email = email.value.tostring();    return u;   }  } 

here stored procedure:

create procedure spselectuserbyusername @usernamein         varchar(max)    =   null                , @userid             int             =   null        output  , @firstname          varchar(max)    =   null        output  , @middleinitial      varchar(max)    =   null        output  , @lastname           varchar(max)    =   null        output  , @userstar           int             =   null        output  , @userrank           varchar(max)    =   null        output  , @userrankcode       varchar(max)    =   null        output  , @userrankid         int             =   null        output  , @assignment         varchar(max)    =   null        output  , @assignmentid       int             =   null        output  , @shift              varchar(max)    =   null        output  , @shiftid            int             =   null        output  ,    @contactphone       varchar(max)    =   null        output  , @phonetype          varchar(max)    =   null        output  , @email              varchar(max)    =   null        output begin  select   @userid            =   users.user_id                               ,  @firstname     =   users.first_name                            ,  @lastname      =   users.last_name                             ,  @middleinitial =   users.middle_initial                        ,  @userstar      =   users.user_star                             ,   @userrank      =   concat(users.user_rank,' - ',ranks.title)   ,  @userrankcode  =   users.user_rank                             ,  @userrankid        =   ranks.id                                    ,  @assignmentid  =   users.assignment                            ,  @assignment        =   assignment.assignmentname                   ,  @shiftid       =   users.regular_shift                         ,  @shift         =   s.displayname                               ,  @contactphone  =   users.contact_phone                         ,  @phonetype     =   users.phone_type                            ,  @email         =   users.email                                       dbo.users left join [shift] s   on  users.regular_shift     =   s.shiftid left join assignment  on  users.assignment        =   assignment.assignmentid left join ranks       on  users.user_rank         =   ranks.code users.username                          =   @usernamein end 

change procedure following, , use sqldataadapter result datatable:

create procedure spselectuserbyusername @usernamein         varchar(max)    =   null                ,  begin  select     users.user_id,    users.first_name,    users.last_name,    users.middle_initial,    users.user_star,    concat(users.user_rank,' - ',ranks.title),    users.user_rank,    ranks.id,    users.assignment,    assignment.assignmentname,    users.regular_shift,    s.displayname,    users.contact_phone,    users.phone_type,    users.email                                       dbo.users left join [shift] s   on  users.regular_shift = s.shiftid left join assignment  on  users.assignment = assignment.assignmentid left join ranks on users.user_rank = ranks.code users.username =  @usernamein end 

so can use adapter retrieve data this:

string connstring = configurationmanager.connectionstrings["connectionstring"].connectionstring; datatable resulttable = new datatable(); using (sqlconnection conn = new sqlconnection(connstring)) {     using (sqlcommand cmd = new sqlcommand())     {         cmd.commandtype = system.data.commandtype.storedprocedure;         cmd.commandtext = "";         cmd.parameters.add("@usernamein", sqldbtype.int).value = txtusername.text; // or eve supplay username         sqldataadapter sqladapter = new sqldataadapter(cmd);         sqladapter.fill(resulttable);     }  } 

Comments