0
我創建的頁面發佈作業,請單擊Add(添加)按鈕後,我得到這個例外過程或函數Usp_InsertPostJob具有指定
過程或函數Usp_InsertPostJob具有指定的參數太多太多的爭論。
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
)
您不應該將任何內容存儲爲以逗號分隔的列表。這將使搜索數據變得更加困難。你的數據庫設計也有其他問題,比如你將日期存儲爲datetime(已經是時間了),然後你有一個varchar(30)的時間字段。 –