none
ListView サーバで実行するとParameter エラーになる RRS feed

  • 質問


  • 下記のリストビューをローカルで実行すると問題なく動作するのですが、

    サーバ上にアップロードすると、INSERT、UPDATEでエラーになってしまい原因がわかりません。

    エラーは下記のような内容です。何かお気づきの点がありました教授頂けると幸いです。

    環境は以下の通りです。宜しくお願い致します。

    -------------------------------------------------------------------

    開発用PC
    Windows8 Pro、VsiaulStudio2012(ASP.net C#)、ASP.NET開発サーバ、Framework4.5
    MySQL Server 5.6、MySQL Connector Net 6.6.5
    -------------------------------------------------------------------
    実行環境 (レンタルサーバ:WILLNET)
    Windows Server 2012、Microsoft-IIS/8.5、Framework4.5
    MySQL Community Server 5.1.73、mysqlnd 5.0.11-dev

    -------------------------------------------------------------------

    Parameter '@updateday' not found in the collection.
    
    説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 
    
    例外の詳細: System.ArgumentException: Parameter '@updateday' not found in the collection.
    
    ソース エラー: 
    
    現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。
    
    スタック トレース: 
    
    
    [ArgumentException: Parameter '@updateday' not found in the collection.]
       MySql.Data.MySqlClient.MySqlParameterCollection.GetParameter(String parameterName) +272
       System.Data.Common.DbParameterCollection.get_Item(String parameterName) +9
       m_corp.MySqlDataSource_Inserting(Object sender, SqlDataSourceCommandEventArgs e) +52
       System.Web.UI.WebControls.SqlDataSourceView.OnInserting(SqlDataSourceCommandEventArgs e) +101
       System.Web.UI.WebControls.SqlDataSourceView.ExecuteInsert(IDictionary values) +363
       System.Web.UI.DataSourceView.Insert(IDictionary values, DataSourceViewOperationCallback callback) +81
       System.Web.UI.WebControls.ListView.HandleInsert(ListViewItem item, Boolean causesValidation) +382
       System.Web.UI.WebControls.ListView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +623
       System.Web.UI.WebControls.ListView.OnBubbleEvent(Object source, EventArgs e) +227
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
       System.Web.UI.WebControls.ListViewItem.OnBubbleEvent(Object source, EventArgs e) +112
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
       System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +114
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +159
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724


    <asp:ListView ID="_listView" runat="server" DataSourceID="MySqlDataSource" InsertItemPosition="LastItem" DataKeyNames="corp_id"
                                        OnItemInserting="_listView_ItemInserting" OnItemUpdating="_listView_ItemUpdating" OnItemDeleting="_listView_ItemDeleting">
    
                                     
                                        <EditItemTemplate>
                                            <tr style="">
                                                <td>
                                                    <asp:Button runat="server" CommandName="Update" Text="更新" ID="UpdateButton" />
                                                    <asp:Button runat="server" CommandName="Cancel" Text="キャンセル" ID="CancelButton" />
                                                </td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("corp_id") %>' runat="server" ID="corp_idTextBox" Enabled="false" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("corp_name") %>' runat="server" ID="corp_nameTextBox" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("corp_eria") %>' runat="server" ID="corp_eriaTextBox" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("updateday") %>' runat="server" ID="updatedayTextBox" Visible="false" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("createday") %>' runat="server" ID="createdayTextBox" Visible="false" /></td>
                                            </tr>
                                        </EditItemTemplate>
                                        <EmptyDataTemplate>
                                            <table runat="server" style="">
                                                <tr>
                                                    <td>データは返されませんでした。</td>
                                                </tr>
                                            </table>
                                        </EmptyDataTemplate>
                                        <InsertItemTemplate>
                                            <tr style="">
                                                <td>
                                                    <asp:Button runat="server" CommandName="Insert" Text="挿入" ID="InsertButton" />
                                                    <asp:Button runat="server" CommandName="Cancel" Text="クリア" ID="CancelButton" />
                                                </td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("corp_id") %>' runat="server" ID="corp_idTextBox" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("corp_name") %>' runat="server" ID="corp_nameTextBox" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("corp_eria") %>' runat="server" ID="corp_eriaTextBox" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("updateday") %>' runat="server" ID="updatedayTextBox" /></td>
                                                <td>
                                                    <asp:TextBox Text='<%# Bind("createday") %>' runat="server" ID="createdayTextBox" /></td>
                                            </tr>
                                        </InsertItemTemplate>
                                        <ItemTemplate>
                                            <tr style="">
                                                <td>
                                                    <asp:Button runat="server" CommandName="Delete" Text="削除" ID="DeleteButton" />
                                                    <asp:Button runat="server" CommandName="Edit" Text="編集" ID="EditButton" />
                                                </td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("corp_id") %>' runat="server" ID="corp_idLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("corp_name") %>' runat="server" ID="corp_nameLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("corp_eria") %>' runat="server" ID="corp_eriaLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("updateday") %>' runat="server" ID="updatedayLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("createday") %>' runat="server" ID="createdayLabel" /></td>
                                            </tr>
                                        </ItemTemplate>
                                        <LayoutTemplate>
                                            <table runat="server" class="table table-bordered table-hover table-striped">
                                                <tr runat="server">
                                                    <td runat="server">
                                                        <table runat="server" id="itemPlaceholderContainer" style="" border="0" class="table table-bordered table-hover table-striped">
                                                            <tr runat="server" style="">
                                                                <th runat="server"></th>
                                                                <th runat="server">店舗コード</th>
                                                                <th runat="server">店舗名</th>
                                                                <th runat="server">管理エリア</th>
                                                                <th runat="server">最終更新日</th>
                                                                <th runat="server">登録日</th>
                                                            </tr>
                                                            <tr runat="server" id="itemPlaceholder"></tr>
                                                        </table>
                                                    </td>
                                                </tr>
                                                <tr runat="server">
                                                    <td runat="server" style="">
                                                        <asp:DataPager runat="server" ID="DataPager1">
                                                            <Fields>
                                                                <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True"></asp:NextPreviousPagerField>
                                                            </Fields>
                                                        </asp:DataPager>
                                                    </td>
                                                </tr>
                                            </table>
                                        </LayoutTemplate>
                                        <SelectedItemTemplate>
                                            <tr style="">
                                                <td>
                                                    <asp:Button runat="server" CommandName="Delete" Text="削除" ID="DeleteButton" />
                                                    <asp:Button runat="server" CommandName="Edit" Text="編集" ID="EditButton" />
                                                </td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("corp_id") %>' runat="server" ID="corp_idLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("corp_name") %>' runat="server" ID="corp_nameLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("corp_eria") %>' runat="server" ID="corp_eriaLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("updateday") %>' runat="server" ID="updatedayLabel" /></td>
                                                <td>
                                                    <asp:Label Text='<%# Eval("createday") %>' runat="server" ID="createdayLabel" /></td>
                                            </tr>
                                        </SelectedItemTemplate>
                                    </asp:ListView>
    
    
                                    <%--OnInserting、OnUpdating などでイベント直前をキャッチ--%>
                                    <asp:SqlDataSource ID="MySqlDataSource" runat="server"
                                        ConnectionString="<%$ ConnectionStrings:MySqlDataSorce %>"
                                        ProviderName="<%$ ConnectionStrings:MySqlDataSorce.ProviderName %>"
                                        SelectCommand="SELECT corp_id, corp_name, corp_eria, updateday, createday FROM m_corp"
                                        DeleteCommand="DELETE FROM m_corp WHERE corp_id=@corp_id"
                                        InsertCommand="INSERT into m_corp(corp_id, corp_name, corp_eria, updateday, createday)values (@corp_id, @corp_name, @corp_eria, @updateday, @createday)"
                                        UpdateCommand="UPDATE m_corp SET corp_eria=@corp_eria, corp_name=@corp_name,updateday=@updateday WHERE corp_id=@corp_id"
                                        OnInserting="MySqlDataSource_Inserting" OnUpdating="MySqlDataSource_Updating" OnDeleting="MySqlDataSource_Deleting"></asp:SqlDataSource>
    


    -------------------------------------------------------------------

    開発用PC
    Windows8 Pro、VsiaulStudio2012(ASP.net C#)、ASP.NET開発サーバ、Framework4.5
    MySQL Server 5.6、MySQL Connector Net 6.6.5
    -------------------------------------------------------------------
    実行環境 (レンタルサーバ:WILLNET)
    Windows Server 2012、Microsoft-IIS/8.5、Framework4.5
    MySQL Community Server 5.1.73、mysqlnd 5.0.11-dev

    -------------------------------------------------------------------


    2014年11月25日 6:18

回答

  • どうも、データプロバイダー(Connector/NET に含まれる MySql.Data.dll)が怪しい感じですね。

    ダウンロードした Connector/NET をインストールすると、自動的に GAC に MySql.Data.dll が登録され、さらに machine.config ファイルの DbProviderFactories セクションに MySQL 用プロバイダの構成情報が登録されます。

    なので、開発マシンでは Connector/NET さえインストールすれば、開発者は何も設定しなくても MySQL は動くはずです。

    問題は WILLNET のサーバーがどうなっているかですね。

    ここから先は、質問者さんの直近のレスの情報からの推測ですが・・・

    > もうひとつレンタルサーバでExpressサーバというのも借りており、こちらがMySQL5.1でしたので、
    > 同じファイルをそのまま利用しテストしたところ、問題なく動作することができました。

    質問者さんが web,config の修正とか MySql.Data.dll の Bin フォルダへの配置など一切してないのに問題なく動作したということですか?

    であれば、「Expressサーバ」(ExpressWeb ?)には、レンタルサーバー会社が Connector/NET をインストールするなどして、MySql.Data.dll の GAC へ登録とプロバイダ構成情報の machine.config への登録が済んでいるのではないかと思われます。

    そして、

    > Expressサーバで動作している別のListViewを使っているプロジェクトを丸ごと、
    > WILLNETのサーバにアップし、実行してみると、下記のエラーになりました。
     ・・・中略・・・
    > Web.configに下記を追加した記憶があります。

    ということは、WILLNET のサーバーには MySql.Data.dll の GAC へ登録やプロバイダ構成情報の machine.config への登録がされていない、もしくは登録されていても質問者さんが必要とするものとバージョンが異なるのではないかと思います。

    その推測が当たっていれば、WILLNWT のサーバーにある Web アプリケーションの Bin フォルダに、開発マシンで使っている MySql.Data.dll をコピーし、先に行った「Web.configに下記を追加」にその MySql.Data.dll のバージョンを追記すれば動くのではないかと思います。(それをやる前に WILLNET に問い合わせた方がよさそうですが)

    MySql.Data.dll には .NET 2.0 ~ 3.5 用と .NET 4 用の 2 種類あるので注意してください。

    また、GAC と Bin フォルダの優先順位は以下の通りで、バージョンを指定しないと GAC ものが使われるそうですので注意してください。

    ASP.net assembly loading from GAC or Bin
    http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/18/asp-net-assembly-loading-from-gac-or-bin.aspx


    【追伸】

    先のレスで、

    > 古い話(MySQL 5.0, Connector/Net 1.0)ですが、以下のページにあるように、パラメーラ名の
    > 先頭は '@' ではなくて '?' にする必要があるという話もあるようです。

    という情報を提供しましたが、それは読んでもらえましたか? パラメーラ名の先頭を '@' から '?' に変えて試してもらえましたか?


    • 編集済み SurferOnWww 2014年11月25日 15:56 追伸追加
    • 回答としてマーク hys73 2014年11月26日 1:34
    2014年11月25日 15:32

すべての返信

  • 開発用のMySQLのバージョンが高いようです。パラメータはどのように渡されていますか?外しているかもしれませんが、ひょっとすると実行環境では、パラメータを指定する順序を、実際のSQL文中に現れる順序に合わせなければならないのかもしれません。また、大文字小文字も正確に合わせないといけないのかもしれません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年11月25日 6:42
    モデレータ


  • 回答ありがとうございます。

    パラメータですが、

    当初、SqlDataSourceのOnInsertingやOnUpdatingイベントで下記のようにしておりました。

    protected void MySqlDataSource_Inserting(object sender, SqlDataSourceCommandEventArgs e)
    {
          DateTime d = DateTime.Now;
          e.Command.Parameters["@updateday"].Value = d;
          e.Command.Parameters["@createday"].Value = d;
    }

    ですが、エラーの原因が特定できないので、現在は特に指定せず、
    InsertCommand="INSERT into m_corp(corp_id, corp_name, corp_eria, updateday, createday) values (@corp_id, @corp_name, @corp_eria, @updateday, @createday)" 

    UpdateCommand="UPDATE m_corp SET corp_eria=@corp_eria, corp_name=@corp_name,updateday=@updateday WHERE corp_id=@corp_id"
    でリストビューから手入力しても同様にエラーになります




    で指定しているので、


    2014年11月25日 7:01
  • > 下記のリストビューをローカルで実行すると問題なく動作するのですが、
    > サーバ上にアップロードすると、INSERT、UPDATEでエラーになってしまい原因がわかりません。

    「ローカル」というのは開発マシンでという意味ですよね?

    エラーメッセージは '@updateday' が見つからないと言っていますが、開発マシンと IIS の違いでそういうことが起きるとすると、OnInserting="MySqlDataSource_Inserting", OnUpdating="MySqlDataSource_Updating" で指定されているハンドラでそれが影響するようなことしているぐらいしか思い当たりません。

    そのあたりの情報を提供できませんか・・・というより、その前に、会社の規則で IIS を使うのが禁止されているとかの事情がなければ、開発環境で開発サーバーを使うのは止めて IIS を使用すべきです。

    理由は、開発サーバーでは問題なく動いていても、IIS を使った本番環境に移すと動かないということがあるからです。詳しくは以下のページを見てください。

    ASP.NET 開発サーバーと IIS
    http://surferonwww.info/BlogEngine/post/2011/11/18/ASPNET-development-server-and-IIS.aspx


    開発マシンは Windows8 Pro だそうですので、開発にも IIS が使用できます。

    今回のトラブルが、開発サーバー / IIS の違いが原因だとすれば、開発時点から IIS を使用していればそこで問題が見つかって、未然に(サーバーにアップする前に)防ぐことができた可能性が大です。

    2014年11月25日 7:10
  • すみません、レスが前後してしまったようです。

    今はイベントハンドラでは何もしていない(コードは削除した)ということですか?

    2014年11月25日 7:20
  • 回答ありがとうございます。

    >「ローカル」というのは開発マシンでという意味ですよね

    はい。開発マシンになります。

    また、今はイベントハンドラでは何もせず、コードも削除しております。

    ブラウザのキャッシュをクリアしたり、WEBサーバ側を再起動したりしても同じ

     '@updateday' が見つからない・・のエラーが出てしまいます。

    何かお気づきの点があれば教えて下さい。

    2014年11月25日 7:43
  • コードを削除したらどこでパラメーターを渡されているのでしょうか? aspxにもパラメーターの設定の記述がないようですし・・・。
    掲載されたコードと現在の状況が違っては回答をするのが非常に難しくなってしまいます。とりあえずローカルで動く状態を再現しましょう。
    その際に、再掲になりますが、
    e.Command.Parameters["@updateday"].Value = d;
    などのパラメーターの指定を、Update文などに出てくるパラメータの順序通りに指定してみて下さい。パラメータの大文字小文字も一致させて下さい。
    これらパラメータの指定順序、大文字小文字をきちんと守れば、実行環境でも動作する可能性があります。MySQLとSqlDataSourceとの組み合わせですので、ここら辺りはまずは試すべきところなんじゃないかと思います。逆に言えば、SQL ServerとSqlDataSourceの組み合わせですと、パラメーターの指定順序は気にする必要はありません。

    ローカルでパラメータがきちんと渡り、実行環境ではパラメータが無いと言われていますので、MySQLに対するパラメーターの指定方法が、実行環境ではまずいという可能性が一番大きいように思います。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年11月25日 8:09
    モデレータ
  • 古い話(MySQL 5.0, Connector/Net 1.0)ですが、以下のページにあるように、パラメーラ名の先頭は '@' ではなくて '?' にする必要があるという話もあるようです。

    MySQLでSqlParameterを使ったSQLがうまく動かない。
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29795&forum=7&7

    ただ、質問者さんのケースでは「INSERT、UPDATEでエラー」ということなので(DELETE はうまく動くと理解しています)、DELETE 句に WHERE corp_id=@corp_id を使っていることから '@' でよさそうに見えます。

    > '@updateday' が見つからない・・のエラーが出てしまいます。

    というのが、そのパラメータ以外は問題ないということですと、やはり先頭が '@' か '?' は関係なさそうです。

    また、5.0 の時代から名前つきパラメータを使用できたようですので、パラメータの順序も関係なさそうです。

    ちなみに、自分の環境は MySQL Community Server 5.5.11 と Connector/Net 6.3.6 ですが、'@' と '?' のどちらでも問題ないですし、両方を一つのクエリの中に混ぜても問題ないです。また、名前つきパラメータが使えますので、パラメータの設定順序も関係ないです。

    というわけで、すみませんが質問者さんと同じ問題を再現できない自分には原因は分かりません。

    やはり、質問者さんの開発環境を実行環境と同じにして(IIS 以外に MySQL Community Server, Connector/NET も)開発環境で問題を再現して原因を究明するのが、問題解決への近道だと思います。

    MySQL Community Server 5.1.73 は MySQL のサイトからまだ入手できるようですので、それを入手して開発マシンにインストールして検証してはいかがですか?

    Download MySQL Community Server
    http://dev.mysql.com/downloads/mysql/

    実環境の Connector/NET のバージョンが分かりませんが、WILLNET に問い合わせて、できればそれも同じにすることをお勧めします。ただ、古いバージョンでは Visual Studio をサポートしてないという問題があるようですので注意してください。詳しくは下記のページを見てください。

    Chapter 2 Connector/Net Versions
    http://dev.mysql.com/doc/connector-net/en/connector-net-versions.html



    • 編集済み SurferOnWww 2014年11月25日 11:02 mail to になってしまうのを訂正
    2014年11月25日 9:47
  • 【追伸】

    エラーメッセージでググって調べてみると、ストアドを使った場合、型が違うとか、パラメータの順序/大文字小文字の違いで Parameter 'xxx' not found in the collection というエラーメッセージが出るという話がありました。

    parameter “created_on” not found in the collection
    http://stackoverflow.com/questions/16622706/parameter-created-on-not-found-in-the-collection

    MySQL/ASP.NET Parameter ‘foo’ not found in the collection.
    http://rbailey.wordpress.com/2010/05/20/mysqlasp-net-parameter-foo-not-found-in-the-collection/

    ストアドを使っているとは書いてないですが、質問に書いてないどこかに開発環境と実環境に違いがあるということはないですか?

    2014年11月25日 11:51
  • 回答ありがとうございます。

    また、検証までして頂きありがとうございます。

    未だに解決できず試行錯誤しておりますが、

    '@' については、DELETE句についても動作しておりませんでした。

    '@' で指定しているものは全て効いていない感じです。

    あと、もうひとつレンタルサーバでExpressサーバというのも借りており、こちらがMySQL5.1でしたので、

    同じファイルをそのまま利用しテストしたところ、問題なく動作することができました。ですので、開発PCとExpressサーバで

    動作するので、プログラムソースの問題ではなさそうでした。

    さらにExpressサーバで動作している別のListViewを使っているプロジェクトを丸ごと、

    WILLNETのサーバにアップし、実行してみると、下記のエラーになりました。

    要求された .Net Framework データ プロバイダーが見つかりません。これは、インストールされていない可能性があります。

    WILLNETサーバの初期設定も同様のエラーがでて、Web.configに下記を追加した記憶があります。

      <system.data>
        <DbProviderFactories>
          <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
          <remove invariant="System.Data.SqlServerCe.4.0" />
          <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
      </system.data>
    

    やはりWILLNETのCONNECTOR/NETまわりの問題に起因してそうな気もしておりますが、

    一旦WILLNTに問い合わせてを実施してみます。


    2014年11月25日 13:03
  • どうも、データプロバイダー(Connector/NET に含まれる MySql.Data.dll)が怪しい感じですね。

    ダウンロードした Connector/NET をインストールすると、自動的に GAC に MySql.Data.dll が登録され、さらに machine.config ファイルの DbProviderFactories セクションに MySQL 用プロバイダの構成情報が登録されます。

    なので、開発マシンでは Connector/NET さえインストールすれば、開発者は何も設定しなくても MySQL は動くはずです。

    問題は WILLNET のサーバーがどうなっているかですね。

    ここから先は、質問者さんの直近のレスの情報からの推測ですが・・・

    > もうひとつレンタルサーバでExpressサーバというのも借りており、こちらがMySQL5.1でしたので、
    > 同じファイルをそのまま利用しテストしたところ、問題なく動作することができました。

    質問者さんが web,config の修正とか MySql.Data.dll の Bin フォルダへの配置など一切してないのに問題なく動作したということですか?

    であれば、「Expressサーバ」(ExpressWeb ?)には、レンタルサーバー会社が Connector/NET をインストールするなどして、MySql.Data.dll の GAC へ登録とプロバイダ構成情報の machine.config への登録が済んでいるのではないかと思われます。

    そして、

    > Expressサーバで動作している別のListViewを使っているプロジェクトを丸ごと、
    > WILLNETのサーバにアップし、実行してみると、下記のエラーになりました。
     ・・・中略・・・
    > Web.configに下記を追加した記憶があります。

    ということは、WILLNET のサーバーには MySql.Data.dll の GAC へ登録やプロバイダ構成情報の machine.config への登録がされていない、もしくは登録されていても質問者さんが必要とするものとバージョンが異なるのではないかと思います。

    その推測が当たっていれば、WILLNWT のサーバーにある Web アプリケーションの Bin フォルダに、開発マシンで使っている MySql.Data.dll をコピーし、先に行った「Web.configに下記を追加」にその MySql.Data.dll のバージョンを追記すれば動くのではないかと思います。(それをやる前に WILLNET に問い合わせた方がよさそうですが)

    MySql.Data.dll には .NET 2.0 ~ 3.5 用と .NET 4 用の 2 種類あるので注意してください。

    また、GAC と Bin フォルダの優先順位は以下の通りで、バージョンを指定しないと GAC ものが使われるそうですので注意してください。

    ASP.net assembly loading from GAC or Bin
    http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/18/asp-net-assembly-loading-from-gac-or-bin.aspx


    【追伸】

    先のレスで、

    > 古い話(MySQL 5.0, Connector/Net 1.0)ですが、以下のページにあるように、パラメーラ名の
    > 先頭は '@' ではなくて '?' にする必要があるという話もあるようです。

    という情報を提供しましたが、それは読んでもらえましたか? パラメーラ名の先頭を '@' から '?' に変えて試してもらえましたか?


    • 編集済み SurferOnWww 2014年11月25日 15:56 追伸追加
    • 回答としてマーク hys73 2014年11月26日 1:34
    2014年11月25日 15:32
  • お世話になります。

    回答ありがとうございました。先ほどWILNETから回答があり、無事解決することができました!

    皆様のアドバイスがなければ解決しなっかたと思います。この度はありがとうございました!

    >いつもお世話になっております。ウイルネットです。
    >
    >MySQL Connector/ODBC 5.1.13がインストールされております。
    >MySQL Connector/NETはインストールされておりません。
    >
    >PleskコントロールパネルをインストールしたWindowsサーバの仕様で、MySQLはODBCのみのサポートとなっておりました。
    このあたり新ASP.NETプランでは情報が不足していたかもしれません。大変申し訳ございません。

    >そこで、MySQL Connector/NET 6.9.5をご利用のサーバにインストールさせていただきました。64ビットOSのところ、
    >Connector/NETは32ビット版しかないのですが、動作する事は確認いたしました。
    >web.configに追加したコードを削除して、問題が解消するかご確認いただけますでしょうか。

    ※追伸

    パラメータ名の’@’、’?’について

    MySQL Connector/NETがインストールされていない状況下では、’@’、’?’はどちらでも変化なく、

    パラメータして機能していないようでした。インストール後は’@’、’?’どちらでもパラメータとして機能することを確認致しました。

    いろいろとアドバイス頂き、ありがとうございました。

    2014年11月26日 1:50