/ / .net、mysql、ストアドプロシージャ、パラメータ、コレクション

.NETコネクタの問題を持つmySQLストアドプロシージャ - .net、mysql、ストアドプロシージャ、パラメータ、コレクション

私はこのエラーに対処する他のトピックを見てきましたが、私の状況に対応するようなものはありません。

まず、ローカルで実行すると、私のコードは完全に正常に動作します。

しかし、私はそれをサーバーにアップロードすると、私はエラーが表示されます:

パラメータ "?PuserName"がコレクションに見つかりません。

C#コードは次のとおりです。

public DataSet GetEmployeeByUsername(string username)
{
string proc = "schema.GetEmployeeByUsername";
MySqlParameter[] args = new MySqlParameter[1];
args[0] = new MySqlParameter("?PuserName", MySqlDbType.VarChar);
args[0].Value = username;
return SQLDatasetCall(args, proc);
}

protected DataSet SQLDatasetCall(MySqlParameter[] sqlparams, string call)
{
string myConString = ConfigurationManager.AppSettings["mySql"];
MySqlConnection MyConnection = new MySqlConnection(myConString);
MySqlDataAdapter adapter = new MySqlDataAdapter();
MyConnection.Open();
MySqlCommand command = new MySqlCommand(call, MyConnection);
command.CommandType = CommandType.StoredProcedure;
if (sqlparams != null)
{
foreach (MySqlParameter param in sqlparams)
{
command.Parameters.Add(param);
}
}
DataSet ds = new DataSet();
adapter.SelectCommand = command;
adapter.Fill(ds);
adapter.Dispose();
MyConnection.Close();
return ds;
}

SQLコード:

delimiter |
create procedure GetEmployeeByUsername(in PuserName varchar(45))
begin
select id,
firstName,
lastName,
phone,
address1,
address2,
city,
state,
zip,
username,
password,
emptypeid
from schema.tblemployees
where
username=PuserName;
end |
delimiter;

回答:

回答№1は1

Microsoft Visual Web Developerが「公開」メソッドで正しくファイルをftpしていないことが判明しました。私はfilezillaをダウンロードし、ファイルを再度ftpしていました。