SqlCommand sampleCMD = new SqlCommand("SampleProc", nwindConn);
sampleCMD.CommandType = CommandType.StoredProcedure;
SqlParameter sampParm = sampleCMD.Parameters.Add("RETURN_VALUE", SqlDbType.Int);
sampParm.Direction = ParameterDirection.ReturnValue;
sampleCMD.CommandType = CommandType.StoredProcedure;
SqlParameter sampParm = sampleCMD.Parameters.Add("RETURN_VALUE", SqlDbType.Int);
sampParm.Direction = ParameterDirection.ReturnValue;
MyCom.CommandType = System.Data.CommandType.StoredProcedure;MyCom.Parameters.Clear();System.Data.SqlClient.SqlParameter P_intSuffererID = MyCom.Parameters.Add("@intSuffererID", System.Data.SqlDbType.Int);
System.Data.SqlClient.SqlParameter P_intGatheringType = MyCom.Parameters.Add("@intGatheringType", System.Data.SqlDbType.Int);
System.Data.SqlClient.SqlParameter P_dblFee = MyCom.Parameters.Add("@dblFee", System.Data.SqlDbType.Float);
System.Data.SqlClient.SqlParameter P_intCardID = MyCom.Parameters.Add("@intCardID", System.Data.SqlDbType.Int);
System.Data.SqlClient.SqlParameter P_intOperateID = MyCom.Parameters.Add("@intOperateID", System.Data.SqlDbType.Int);
System.Data.SqlClient.SqlParameter P_strOperater = MyCom.Parameters.Add("@strOperater", System.Data.SqlDbType.VarChar,32);
System.Data.SqlClient.SqlParameter P_intWriter = MyCom.Parameters.Add("@intWriter", System.Data.SqlDbType.Int);
System.Data.SqlClient.SqlParameter P_intKYWJLID = MyCom.Parameters.Add("@intKYWJLID", System.Data.SqlDbType.Int);System.Data.SqlClient.SqlParameter P_intOutPut = MyCom.Parameters.Add("@intOutPut",System.Data.SqlDbType.Int);P_intOutPut.Direction = System.Data.ParameterDirection.Output;P_intSuffererID.Value = m_intSuffererID;
P_intGatheringType.Value = ClassBaseGlobeVariable.Globe_FeeMethod;
P_dblFee.Value = Convert.ToDouble(this.txtCharge.Text);
P_intCardID.Value = m_intCardID;
P_intOperateID.Value = ClassBaseGlobeVariable.Globe_Employee_ID;
P_strOperater.Value = ClassBaseGlobeVariable.Globe_Name;
P_intWriter.Value = ClassBaseGlobeVariable.Globe_Employee_ID;
P_intKYWJLID.Value = p_intKYWJL;P_intOutPut.Value = 0;MyCom.Connection.Open();
MyCom.ExecuteNonQuery();
MyCom.Connection.Close();if(Convert.ToInt32(P_intOutPut.Value.ToString()) > 0)
{
m_intCardRecord = Convert.ToInt32(P_intOutPut.Value.ToString());
}
else
{
MessageBox.Show(this,"数据写入未成功!","注意",MessageBoxButtons.OK,MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1);
return;
}给你参考
存储过程提供了数据驱动应用程序中的许多优点。利用存储过程,数据库操作可以封装在单个命令中,为获取最佳性能而进行优化并通过附加的安全性得到增强。虽然可以通过以 SQL 语句的形式传递参数自变量之前的存储过程名称来调用存储过程,但如果使用 ADO.NET Command 对象的 Parameters 集合,则可以显式地定义存储过程参数并访问输出参数和返回值。若要调用存储过程,请将 Command 对象的 CommandType 设置为 StoredProcedure。CommandType 一旦设置为 StoredProcedure,就可以使用 Parameters 集合来定义参数,如以下示例所示。mmand sampleCMD = new SqlCommand("SampleProc", nwindConn);
sampleCMD.CommandType = CommandType.StoredProcedure;sampParm = sampleCMD.Parameters.Add("@InputParm", SqlDbType.NVarChar, 12);
sampParm.Value = "Sample Value";sampParm = sampleCMD.Parameters.Add("@OutputParm", SqlDbType.NVarChar, 28);
sampParm.Direction = ParameterDirection.Output;nwindConn.Open();SqlDataReader sampReader = sampleCMD.ExecuteReader();Console.WriteLine("{0}, {1}", sampReader.GetName(0), sampReader.GetName(1));while (sampReader.Read())
{
Console.WriteLine("{0}, {1}", sampReader.GetInt32(0), sampReader.GetString(1));
}sampReader.Close();
nwindConn.Close();
就是它了。