2017-05-06 29 views
0

我創建的頁面發佈作業,請單擊Add(添加)按鈕後,我得到這個例外過程或函數Usp_InsertPostJob具有指定

過程或函數Usp_InsertPostJob具有指定的參數太多太多的爭論。

enter image description here

C#代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 
using System.IO; 

public partial class Profile_Employer : System.Web.UI.Page 
{ 
    SqlDataAdapter da; 
    DataTable dt; 
    SqlCommand cmd; 
    Int32 rowCount = 0; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 


     bindOpeningType(); 
     bindJobProfile(); 
     bindSkills(); 

     if (Session["UserName"] != null) 
     { 
     lblUserName.Text = Session["UserName"].ToString(); 
     } 
     else 
     { 
      Response.Redirect("Default.aspx"); 
     } 
    } 
} 

protected void btnPostJob_Click(object sender, EventArgs e) 
{ 
     string cs = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      con.Open(); 
      try 
      { 
       cmd = new SqlCommand("Usp_InsertPostJob", con); 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Parameters.AddWithValue("@Opening_Type", ddlOpeningType.SelectedItem.Text.Trim()); 
       cmd.Parameters.AddWithValue("@Job_Description", txtJobDescription.Text.Trim()); 
       cmd.Parameters.AddWithValue("@Job_Profile", ddlJobProfile.SelectedItem.Text.Trim()); 
       cmd.Parameters.AddWithValue("@No_Of_Opening", Convert.ToInt32(txtNoOfOpening.Text.Trim())); 

       string itemList = string.Empty; 
       for (int i = 0; i < lstboxRequiredSkills.Items.Count; i++) 
       { 
        if (lstboxRequiredSkills.Items[i].Selected == true || lstboxRequiredSkills.Items.Count > 0) 
        { 
         itemList += lstboxRequiredSkills.Items[i].ToString() + ", "; 
         cmd.Parameters.AddWithValue("@Required_Skills", itemList); 
        } 
       } 

       cmd.Parameters.AddWithValue("@Required_Experiance", txtRequiredExp.Text.Trim()); 
       cmd.Parameters.AddWithValue("@Interview_Date", Convert.ToDateTime(txtInterviewDate.Text.Trim())); 
       cmd.Parameters.AddWithValue("@Interview_Time", txtTime.Text.Trim()); 
       cmd.Parameters.AddWithValue("@Venue", txtVenue.Text.Trim()); 
       cmd.Parameters.AddWithValue("@Hr_Name", txtHrName.Text.Trim()); 
       cmd.Parameters.AddWithValue("@Hr_Mobile", Convert.ToDecimal(txtHrMobile.Text.Trim())); 
       cmd.Parameters.AddWithValue("@Hr_Email", txtHrEmail.Text.Trim().ToLower()); 
       cmd.Parameters.AddWithValue("@CreatedBy", Convert.ToInt32(Session["UserId"].ToString().Trim())); 
       rowCount = cmd.ExecuteNonQuery(); 
       if (rowCount == 1) 
       { 
        Response.Write("<script>alert('Operation success!')</script>"); 
       } 
      } 
      catch (Exception ex) 
      { 
       ex.ToString(); 
      } 
      finally 
      { 
       con.Close(); 
      } 
     } 
    } 
} 

步驟:

CREATE PROC Usp_InsertPostJob 

    @Opening_Type varchar(20), 
    @Job_Description varchar(500), 
    @Job_Profile varchar(50), 
    @No_Of_Opening int=0, 
    @Required_Skills varchar(500), 
    @Required_Experiance varchar(10), 
    @Interview_Date datetime, 
    @Interview_Time varchar (50), 
    @Venue varchar (500), 
    @Hr_Name varchar (100), 
    @Hr_Mobile decimal (10), 
    @Hr_Email nvarchar (max), 
    @CreatedBy int=0 

AS 

BEGIN 

    INSERT INTO Post_Job(Opening_Type,Job_Description,Job_Profile,No_Of_Opening,Required_Skills,Required_Experiance,Interview_Date,Interview_Time,Venue,Hr_Name,Hr_Mobile,Hr_Email,CreatedBy) 
    VALUES(@Opening_Type,@Job_Description,@Job_Profile,@No_Of_Opening,@Required_Skills,@Required_Experiance,@Interview_Date,@Interview_Time,@Venue,@Hr_Name,@Hr_Mobile,@Hr_Email,@CreatedBy) 

END 

表:

CREATE TABLE [dbo].[Post_Job](
    [JobId] [int] IDENTITY(1,1) PRIMARY KEY, 
    [Opening_Type] [varchar](20) NULL, 
    [Job_Description] [varchar](500) NULL, 
    [Job_Profile] [varchar](50) NULL, 
    [No_Of_Opening] [int] NULL, 
    [Required_Skills] [varchar](500) NULL, 
    [Required_Experiance] [varchar](10) NULL, 
    [Interview_Date] [datetime] NULL, 
    [Interview_Time] [varchar](30) NULL, 
    [Venue] [varchar](500) NULL, 
    [Hr_Name] [varchar](100) NULL, 
    [Hr_Mobile] [decimal](10, 0) NULL, 
    [Hr_Email] [nvarchar](max) NULL, 
    [IsActive] [bit] DEFAULT ((1)) NOT NULL, 
    [CreatedOn] [datetime] DEFAULT (getdate()) NOT NULL, 
    [CreatedBy] [int] NOT NULL, 
    [UpdatedOn] [datetime] NULL 
) 
+2

您不應該將任何內容存儲爲以逗號分隔的列表。這將使搜索數據變得更加困難。你的數據庫設計也有其他問題,比如你將日期存儲爲datetime(已經是時間了),然後你有一個varchar(30)的時間字段。 –

回答

2

p laced「cmd.Parameters.AddWithValue(」@ Required_Skills「,itemList);」在一個循環內。將您的代碼更改爲:

string itemList = string.Empty; 
for (int i = 0; i < lstboxRequiredSkills.Items.Count; i++) 
{ 
    if (lstboxRequiredSkills.Items[i].Selected == true || lstboxRequiredSkills.Items.Count > 0) 
    { 
    itemList += lstboxRequiredSkills.Items[i].ToString() + ", "; 
    } 
} 
cmd.Parameters.AddWithValue("@Required_Skills", itemList); 
+0

Opps這是錯誤!謝謝! –

相關問題