private void btnGo_Click(object sender, EventArgs e)
{
Array IDlist = txtUserID.Text.Split(new char[] { });
ArrayList badID = new ArrayList();
foreach (string textLine in IDlist)
{
try
{
int LineID = Convert.ToInt32(textLine);
string emp = txtDistricts.Text;
command.Parameters.Add("@EmpID", SqlDbType.Int).Value = LineID;
if (!emp.Equals(string.Empty))
command.Parameters.Add("@SchoolDistricts", SqlDbType.NVarChar).Value = emp;
else command.Parameters.Add("@SchoolDistricts", SqlDbType.NVarChar).Value = DBNull.Value;
if (cbRemove.Checked)
command.Parameters.Add("@Options", SqlDbType.Int).Value = 1;
else if (cbReset.Checked)
command.Parameters.Add("@Options", SqlDbType.Int).Value = 0;
else command.Parameters.Add("@Options", SqlDbType.Int).Value = DBNull.Value;
SqlParameter returnValue = new SqlParameter("@return_value", DbType.String);
returnValue.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnValue);
conn.Open();
command.Connection = conn;
// command.ExecuteNonQuery();
command.ExecuteScalar();
String OutPutCheck = (command.Parameters["@return_value"].Value.ToString());
String getCheck = (command.ExecuteScalar().ToString());
OPBox.Text += LineID + "--->>" + OutPutCheck + "--->>" + getCheck + "\n";
conn.Close();
//flagUser(LineID, emp);
}
catch (Exception ex)
{
//stored procedure error
badID.Add(textLine);
conn.Close();
}
}}
ID를 한 번에 가져 오는 APP를 만들었습니다. btn_click 이후에이 값들은 배열로 저장됩니다. 그런 다음 배열에서 각 ID를 하나씩 저장 프로 시저에 전달하고 반환 값을 가져옵니다. 물론 첫 번째 값은 반환 값을 제공하지만 두 번째 값이 프로 시저를 저장하기 위해 전달되면 다음과 같은 오류가 발생합니다.C#을 사용하여 저장 프로 시저 호출
> ERROR::::ex = {"Procedure or function
> usp_Flag_Employee has too many
> arguments specified."}
우리는 당신의 sproc을 볼 수 있습니까? –
저장 프로 시저의 헤더 (매개 변수 선언)를 포함하십시오. – harpo
이 코드에서 생성되는 SQL 명령은 어디에 있습니까? 그것이 클래스 수준의 객체라면 ... 이미 사용 된 적이 있고 이미 매개 변수가 추가되어있을 가능성이 있습니다. –