LOGO

sponsor.jpg

   ホーム      
 | 
  
   イベント      
 | 
  
   コラム      
 | 
  
   連載      
 | 
  
   フォーラム      
 | 
  
   VSUG      
 | 
  
   スタッフ日記      
 | 
  
   VSUG キャスト   
会員サービス
メンバー ログイン
新規会員登録はこちら
MENU
ホーム
イベント
VSUG アカデミー
VSUG Day
その他のイベント
コラム
連載
基本
LINQ
リッチクライアント
ASP.NET
フォーラム
初心者フォーラム
Visual Studio
.NET 開発
プラットフォーム運用
フリートーク・お知らせ
フォーラムの利用案内
VSUG
VSUGとは
フォーラムリーダー紹介
ガジェット
スタッフ日記
VSUG キャスト
第 1 回 近藤 和彦 氏
第 2 回 長沢 智治 氏
フォーラムグループ
初心者フォーラム
初心者なんでも相談室
Visual Studio
Visual Studio 2005
Visual Studio 旧環境
.NET 開発
Visual Basic
Visual C#
Visual C++/CLI その他
Web アプリケーション
リッチクライアント・UI コントロール
データベース・データアクセス
モバイル・スマートクライアント
.NET Framework
開発プロセス
マイグレーション・COM 相互運用
Office 開発・VSTO
Web ホスティングアプリケーション
ライティング・セキュアコード
プラットフォーム運用
運用管理
フリートーク・お知らせ
談話室
VSUGからのお知らせ
フォーラムの利用案内
インフォメーション
会員規約
会員登録
プライバシーポリシー
リンクポリシー
著作権について
スポンサーについて
お問い合わせ
オンライン状態
オンライン状況 オンライン状態:
未登録ユーザー 未登録ユーザー: 150
登録ユーザー 登録ユーザー: 0
計 計: 150

オンライン中のユーザー オンライン中のユーザー:

 
  VSUG フォーラム  初心者フォーラム  初心者なんでも相談室  DetailsViewが更新できない
前へ 前へ
 
次へ 次へ
新しい投稿 2010/01/31 17:06
ユーザーはオフラインです。 矢ノ助
8件の投稿
ランキングデータがありません


DetailsViewが更新できない 
言語:VB / Ver:2008 / プラットフォーム:Windows XP
はじめましてVisual Web Developerを1週間前にインストールして、基礎もままならないまったくの初心者です。
DetailsViewを使ってAccessで保管されたデータを呼び出し編集しようと思っているのですが、「System.Data.OleDb.OleDbException: 1つ以上の必要なパラメータの値が設定されていません。」とエラー表示が出てしまい、どうしても編集が出来なく行き詰まっております。お知恵をお借りしたくよろしくお願いします。
今、ユーザー登録を作っています。新規登録と登録済みに分けて、登録済みデータを後で編集するページでDetailsViewを使いたいのですが
ユーザ登録テーブル13フィールドのうち11フィールドを対象(全テキスト型)のUpDateのフィールドとしています。kyeフィールドはUserIDです。対象外の2フィールドの1つは日付型で規定値にNow()を入れています。もう1つの対象外はテキスト型です。
UpdateCommand="UPDATE [テーブル] SET [名前] = ?, [A] = ?,-省略(9フールド)- WHERE (([UserID] = ?) OR ([UserID] IS NULL AND ? IS NULL))">
<UpdateParameters>
<asp:Parameter Name="UserID" Type="String" />
-省略-10フィールド分パラメータです。
データソースの構成では11フィールドを選択し、WHER区の追加で UserID = ソースをQueryStrinng パラメータのプロパティはIDです。詳細設定ではIN UP Delの生成にチェック
パラメータ値のエディタではパラメータ:UserID、型:String、DbType:Object、値:””です。
 
いろいろなサイトで問題を探して見ましたがよく解りませんでした。フィールド数、名前の間違い、ダブル、シングルコーテーションのこととか、全13フィールドを選択してアップさせてみたり、日付フィールドを削除しアップさせてみたり、accessファイルを置く場所がApp_Dataホルダでないことが原因ではないかと思いつめたり悩んでいます。
ちなみにこれまではWEB MATRIXを使って作り始めていてRepeaterで編集が出来ないため(←知らないだけかも)、DetailsViewで編集するためだけでVWDに切り替えました。露骨にエラー、警告、メッセージ、デバッグが下のほうでなんかいっぱい言っている悲惨な状態です。
お教えいただいても一つ一つ意味が解るのに時間を要すと思いますがご容赦願います。頑張ってやりとげたいです。
 
新しい投稿 2010/02/01 10:06
ユーザーはオフラインです。 小野@どっとねっとふぁん
680件の投稿
dotnetfan.org
5位




Re: DetailsViewが更新できない 

うーん、ちょっと状況がわからないですね。

たとえば全13フィールドを選択した場合は更新できるんでしょうか?
もしそれができてて、11フィールドだとできない、ということであれば、13フィールド選択したときと11フィールドのときと何が違うかを細かく調べていくのがいいと思います。

いままで更新が一度もうまくいったことがない、という状況だったら、最初にどこかのサイトか書籍等を参考にまずDetailesViewでデータを更新する作業を一度作ってみることをおすすめします。
たいていのサンプルはSQL データベースを使ってたりすると思いますけど、まずはサンプルに忠実に作業してみて、で、うまくいったらどんなソースが生成されているのかを確認してみましょう。

そこから実際に動かしたい環境に少しずつ近づけていく、というアプローチをとったほうが結果的にはやいんじゃないかと思います。


あおい情報システム株式会社
 小野修司(どっとねっとふぁん)
Microsoft MVP for ASP/ASP.NET (April 2009 - March 2010)
 
新しい投稿 2010/02/01 18:57
ユーザーはオフラインです。 矢ノ助
8件の投稿
ランキングデータがありません


Re: DetailsViewが更新できない 

ご連絡ありがとうございます。全フィールドもやってみましたがやはりだめでした。サイト書籍のサンプルの前に単純なテーブルでやってみましたがやはりエラーが出ます。 db:test.mdb、 テーブル:tbltest、フィールド:AとBです。ただ新規登録だけは出来ました。

<body>

    <form id="form1" runat="server">

    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"

        DataKeyNames="A" DataSourceID="AccessDataSource1" Height="50px" Width="125px">

        <Fields>

            <asp:BoundField DataField="A" HeaderText="A" ReadOnly="True"

                SortExpression="A" />

            <asp:BoundField DataField="B" HeaderText="B" SortExpression="B" />

            <asp:CommandField ShowEditButton="True" ShowInsertButton="True"

                ShowDeleteButton="True" />

        </Fields>

    </asp:DetailsView>

    <asp:AccessDataSource ID="AccessDataSource1" runat="server"

        DataFile="~/test.mdb"

        DeleteCommand="DELETE FROM [tbltest] WHERE (([A] = ?) OR ([A] IS NULL AND ? IS NULL))"

        InsertCommand="INSERT INTO [tbltest] ([A], [B]) VALUES (?, ?)"

        SelectCommand="SELECT [A], [B] FROM [tbltest]"

        UpdateCommand="UPDATE [tbltest] SET [B] = ? WHERE (([A] = ?) OR ([A] IS NULL AND ? IS NULL))">

        <DeleteParameters>

            <asp:Parameter Name="B" Type="String" />

            <asp:Parameter Name="A" Type="String" />

        </DeleteParameters>

        <UpdateParameters>

            <asp:Parameter Name="B" Type="String" />

            <asp:Parameter Name="A" Type="String" />

        </UpdateParameters>

        <InsertParameters>

            <asp:Parameter Name="A" Type="String" />

            <asp:Parameter Name="B" Type="String" />

        </InsertParameters>

    </asp:AccessDataSource>

   </form>

</body>

 

フォルダやファイルのセキュリティの変更、書込みもフルコントロールにしてみましたがだめでした。

「パラメータの値が設定されていません」と同じエラーが出てしまいます。

何か他に原因があるような気がするのですが、サンプルもだめかどうかを確認してみます。

 

 

 
新しい投稿 2010/02/01 22:13
ユーザーはオフラインです。 handcraft
13件の投稿
ランキングデータがありません


Re: DetailsViewが更新できない 

こんにちは

違っているかもしれませんが、定義をみると、Update 分のときのパラメタ ? の数と、 UpdateParameters の Parameter の数が一致していませんがそこは問題ないのでしょうか?


handcraftの備忘録
 
新しい投稿 2010/02/02 12:48
ユーザーはオフラインです。 矢ノ助
8件の投稿
ランキングデータがありません


Re: DetailsViewが更新できない 

出来ました。原因はWHERE (([A] = ?) OR ([A] IS NULL AND ? IS NULL)) のOR ([A] IS NULL AND ? IS NULL)を消しました。Aを主キーにしていたためNULLはだめなのではと思い消してみたら更新、削除も出来ました。小野@どっとねっとふぁん様、handcraft様、ありがとうございました。感謝します。もっと勉強します。

 

 
 1/2ページ12次へ 
前へ 前へ
 
次へ 次へ
  VSUG フォーラム  初心者フォーラム  初心者なんでも相談室  DetailsViewが更新できない
ログイン | © 2005-2008 Visual Studio User Group. All rights reserved. 著作権について | プライバシーポリシー | リンクポリシー | お問合せ