Я работал над вызовом хранимых процедур с С#, и я столкнулся с проблемой, сопоставляющей столбец, объявленный как тип "char" в базе данных mysql, в mysqldbtype в С# (нет mysqldb.char и отображение в varchar не работает). Может ли кто-нибудь предоставить мне правильное сопоставление, чтобы я мог вызвать эту хранимую процедуру из своего кода? Спасибо.
MySQL proc:
CREATE PROCEDURE xyz(IN a VARCHAR(8), OUT bCHAR(64))
BEGIN
SELECT E.b
INTO b
FROM Employees E
WHERE a= E.a;
END //
Код С#:
//get the salt to use with the login hash
cmd.CommandText = StringLibrary.XYZ; //proc name
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("a", username);
cmd.Parameters["@a"].Direction = System.Data.ParameterDirection.Input;
/*TODO ------>*/cmd.Parameters.AddWithValue("b", MySqlDbType.); // <---------TODO find the correct type here
cmd.Parameters["@b"].Direction = System.Data.ParameterDirection.Output;
Используйте MySqlDbType.String
. В соответствии с комментариями к документации в исходном коде:
/// <summary>
/// A fixed-length string.
/// </summary>
String = 254,