您应该设置对参数的引用
var param3 = new MySqlParameter();param3.Direction = ParameterDirection.Output;param3.DbType = // whatever the dbtype for int is or whatever you need.param3.ParameterName = "param3";com.Parameters.Add(param3);
在您的try块中,插入
var result = com.ExecuteReader(); // or com.ExecuteScalar();
执行完该操作之后,您的参数应已填充值,并且还应该能够读取SP结果(选择)。
var paramResult = param3.Value;
可以以读取器或标量读取SP的结果。
// execute readerwhile (result.Read()) { int value = result.GetInt32(0)); } // execute scalarint value;if (int.TryParse($"{result}", out value)) { }/ ********** /
这个街区应该可以让您到达需要去的地方
const string strcon = "whatevs"; using (MySqlConnection con = new MySqlConnection(strcon)) { const string sql = "login"; MySqlCommand com = new MySqlCommand(sql, con); com.CommandType = CommandType.StoredProcedure; var stuffParam = new MySqlParameter("stuff", stuffValue); var passParam = new MySqlParameter("pass", passValue); var param3Param = new MySqlParameter(); param3Param.ParameterName = "param3"; param3Param.DbType = DbType.Int32; param3Param.Direction = ParameterDirection.Output; com.Parameters.Add(stuffParam); com.Parameters.Add(passParam); com.Parameters.Add(param3Param); try { var scalarResult = com.ExecuteScalar(); // because you used select @param3 in your sp. int value; if (int.TryParse($"{scalarResult}", out value)) { //do something with value } //// because you used select @param3 in your sp. //var readerResult = com.ExecuteReader(); //if (readerResult.Read()) //{ // // // value = readerResult.GetInt32(0); //} int param3Returned; if(int.TryParse($"{param3Param.Value}", out param3Returned)) { // do something with param3Returned } } catch (Exception ex) { // do something with ex } }


