2013-06-28 55 views
0

同時傳遞值存儲過程得到錯誤未能參數值從字符串轉換爲布爾值傳遞給SP(ASP.net)

"Failed to convert parameter value from a String to a Boolean". 

沒有得到一點爲什麼我收到,而我的代碼這個問題是,

C#代碼是在這裏,

invProject.targetprojectId =Convert.ToInt32(this.txtOrderNumber.Text); 
     invProject.projects = this.txtProjectTitle.Text; 
     invProject.bridge_cost = Convert.ToDouble(this.txtBridgeCost.Text); 
     invProject.high_cost = Convert.ToDouble(this.txtHighwayCost.Text); 
     invProject.bridge_comp = this.ddlbridgeComplexity.SelectedValue.ToString(); 
     invProject.hway_comp = this.ddlHighwayComplexity.SelectedValue.ToString(); 
     invProject.project_type = this.ddlProjectType.SelectedValue.ToString(); 
     invProject.proj_Owner = this.ddlProjectOwner.SelectedValue.ToString(); 
     invProject.ind_Exp = Convert.ToInt32(this.chkIndividualExperience.Checked); 

參數逝去如下所示,

SqlParameter projectid = cmd.Parameters.Add("@Target_Project_ID", SqlDbType.Int); 
      projectid.Value = InvPro.targetprojectId; 

     SqlParameter title = cmd.Parameters.Add("@Projects", SqlDbType.VarChar); 
     title.Value = InvPro.projects; 
     SqlParameter bridgecost = cmd.Parameters.Add("@Bridge_Cost", SqlDbType.Money); 
     bridgecost.Value = InvPro.bridge_cost; 
     SqlParameter highwaycost = cmd.Parameters.Add("@Hway_Cost", SqlDbType.Money); 
     highwaycost.Value = InvPro.high_cost; 
     SqlParameter bComplexity = cmd.Parameters.Add("@Bridge_Comp", SqlDbType.VarChar); 
     bComplexity.Value = InvPro.bridge_comp; 
     SqlParameter hComplexity = cmd.Parameters.Add("@Hway_Comp", SqlDbType.VarChar); 
     hComplexity.Value = InvPro.hway_comp; 
     SqlParameter cProjectOwner = cmd.Parameters.Add("@ProjectType", SqlDbType.VarChar); 
     cProjectOwner.Value = InvPro.project_type; 
     SqlParameter ProjectOwner = cmd.Parameters.Add("@Proj_Owner", SqlDbType.VarChar); 
     ProjectOwner.Value = InvPro.proj_Owner; 
     SqlParameter workclass = cmd.Parameters.Add("@Proj_WCB", SqlDbType.VarChar); 
     workclass.Value = InvPro.proj_WCB; 
     SqlParameter INdExp = cmd.Parameters.Add("@Ind_Exp", SqlDbType.Bit); 
     INdExp.Value = InvPro.proj_WCB; 

SP定義參數,

@Target_Project_ID int, 
     @Projects varchar(50), 
     @Bridge_Cost money, 
     @Hway_Cost money, 
     @Bridge_Comp nvarchar(50), 
     @Hway_Comp nvarchar(50), 
     @ProjectType nvarchar(50), 
     @Proj_Owner nvarchar(50), 
     @Proj_WCB nvarchar(50), 
     @Ind_Exp bit, 

而表的列是,

Target_Project_ID int 
Projects nvarchar 
Bridge_Cost money 
Hway_Cost money 
Bridge_Comp nvarchar 
Hway_Comp nvarchar 
Proj_WCB nvarchar 
Proj_Owner nvarchar 
Ind_Exp  bit 

我有很多嘗試,但不能刪除錯誤希望能儘快收到你聽

感謝

+0

你在'invProject.ind_Exp = Convert.ToInt32(this.chkIndividualExperience.Checked)中獲得了什麼;' –

+0

chkIndividualExperience是複選框,我們得到1或0 –

回答

0

轉換變量的值InvPro.proj_WCB到布爾值將是我的猜測。

1

你的問題是在這裏:

SqlParameter workclass = cmd.Parameters.Add("@Proj_WCB", SqlDbType.VarChar); 
    workclass.Value = InvPro.proj_WCB; 
    SqlParameter INdExp = cmd.Parameters.Add("@Ind_Exp", SqlDbType.Bit); 
    INdExp.Value = InvPro.proj_WCB; 

你,而他們是不同的SQLType兩個參數對同一個對象的值設置。一個是VarChar,另一個是位。

InvPro.proj_WCB可以是字符串或布爾值。 在你的代碼中,你將它視爲兩者兼而有之。

相關問題