用sql語法取得預存程序參數失敗

想請問有人能幫我看,我這個程式要查詢薪資範圍時會失敗的原因,我是按查詢鍵出現如附圖的訊息,感謝!


完整程式碼


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 普生工程員工修改系統
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void ShowDate()
{
string Pathstr = System.Windows.Forms.Application.StartupPath.Replace(@"\bin\Debug", "");
string connstr = @"Data Source = (LocalDB)\MSSQLLocalDB;"
+ "AttachDbFilename =" + Pathstr + @"\員工.mdf; Integrated Security = True";
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = connstr;
SqlDataAdapter daEmployee = new SqlDataAdapter
("GetEmployee", cn);
DataSet ds = new DataSet();
daEmployee.Fill(ds, "員工");
dataGridView1.DataSource = ds.Tables["員工"];

}
}
private void Form1_Load(object sender, EventArgs e)
{
ShowDate();
}

private void btnAdd_Click(object sender, EventArgs e)
{
try
{
string Pathstr = System.Windows.Forms.Application.StartupPath.Replace(@"\bin\Debug", "");
string connstr = @"Data Source = (LocalDB)\MSSQLLocalDB;"
+ "AttachDbFilename =" + Pathstr + @"\員工.mdf; Integrated Security = True";
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = connstr;
cn.Open();
SqlCommand cmd = new SqlCommand
("InsertEmployeeReturnEmpid", cn);


cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter
("@name", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter
("@position", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter
("@tel", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter
("@salary", SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.Int));
cmd.Parameters["@RETURN_VALUE"].Direction =
ParameterDirection.ReturnValue;
cmd.Parameters["@name"].Value = txtName.Text;
cmd.Parameters["@position"].Value = txtPosition.Text;
cmd.Parameters["@tel"].Value = txtTel.Text;
cmd.Parameters["@salary"].Value = int.Parse (txtSalary.Text);
cmd.ExecuteNonQuery();
int Empid=int.Parse
(cmd.Parameters["@RETURN_VALUE"].Value.ToString());
MessageBox.Show(txtName.Text + "的員工編號是" + Empid.ToString(), "員工編號");
}
ShowDate();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);


}
}

private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
string Pathstr = System.Windows.Forms.Application.StartupPath.Replace(@"\bin\Debug", "");
string connstr = @"Data Source = (LocalDB)\MSSQLLocalDB;"
+ "AttachDbFilename =" + Pathstr + @"\員工.mdf; Integrated Security = True";
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = connstr;
cn.Open();
SqlCommand cmd = new SqlCommand("UpdateEmployee", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter
("@name", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter
("@position", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter
("@tel", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter
("@salary", SqlDbType.Int));
cmd.Parameters["@name"].Value = txtName.Text;
cmd.Parameters["@position"].Value = txtPosition.Text;
cmd.Parameters["@tel"].Value = txtTel.Text;
cmd.Parameters["@salary"].Value = int.Parse(txtSalary.Text);
cmd.ExecuteNonQuery();
}
ShowDate();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void btnDel_Click(object sender, EventArgs e)
{
try
{
string Pathstr = System.Windows.Forms.Application.StartupPath.Replace(@"\bin\Debug", "");
string connstr = @"Data Source = (LocalDB)\MSSQLLocalDB;"
+ "AttachDbFilename =" + Pathstr + @"\員工.mdf; Integrated Security = True";
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = connstr;
cn.Open();
SqlCommand cmd = new SqlCommand
("DeleteEmployee", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar));
cmd.Parameters["@name"].Value = txtName.Text;
cmd.ExecuteNonQuery();
}
ShowDate();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void btnOk_Click(object sender, EventArgs e)
{

try
{
string Pathstr = System.Windows.Forms.Application.StartupPath.Replace(@"\bin\Debug", "");
string connstr = @"Data Source = (LocalDB)\MSSQLLocalDB;"
+ "AttachDbFilename =" + Pathstr + @"\員工.mdf; Integrated Security = True";
using (SqlConnection cn = new SqlConnection())
{

cn.ConnectionString = connstr;
cn.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "GetStockByQty";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@QMin", SqlDbType.NVarChar));
cmd.Parameters.Add(new SqlParameter("@QMax", SqlDbType.NVarChar));
cmd.Parameters["@Min"].Value = int.Parse(txtMin.Text);
cmd.Parameters["@Max"].Value = int.Parse(txtMax.Text);
SqlDataAdapter daStock = new SqlDataAdapter();
daStock.SelectCommand = cmd;
DataSet ds = new DataSet();
daStock.Fill(ds, "員工");
dataGridView2.DataSource = ds.Tables["員工"];


}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}








}
}
}




用sql語法取得預存程序參數失敗
用sql語法取得預存程序參數失敗
用sql語法取得預存程序參數失敗
2017-11-16 21:42 發佈


這兩個參數的名字寫錯了,前面New的參數名字是QMin & QMax。
感謝jtrue的回答,的確是那邊錯了
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?