2012-02-14 486 views
0

私は数時間の研究を行いましたが、私の現在の状況には何も適用されないようです。ExecuteReader:CommandTextプロパティが初期化されていません

使用します。Visual Studio 2010の.NET 4.0 言語:C#

問題:

を、私は、フォームを作成し、ドラッグして、VS2010は、データを作成してもらうために、フォーム上に私のデータソースから特定のテーブルをドロップ私のためのテーブル。 データテーブルを使用してデータベースに値を変更または追加しようとすると、上記の "ExecuteReader:CommandTextプロパティが初期化されていません"というエラーが表示されます。

私はCommandTextを定義していないし、VS2010がすべてのデータテーブルコードを作成したことを考慮して作成する場所を知っていないし、.csファイル自体にもリストしていない。

ありがとうございました!これは、データデザイナで手動で更新文字列を作成することで解決したF7

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
namespace mineral_monitor.Manual_edits 
{ 
    public partial class mineral_stock : Form 
    { 

    public mineral_stock() 
    { 
     InitializeComponent(); 
    } 

    private void mineralsBindingNavigatorSaveItem_Click(object sender, EventArgs e) 
    { 
     this.Validate(); 
     this.mineralsBindingSource.EndEdit(); 
     this.tableAdapterManager.UpdateAll(this.ore_stockDataSet1); 

    } 

    private void mineral_stock_Load(object sender, EventArgs e) 
    { 
     // TODO: This line of code loads data into the 'ore_stockDataSet1.minerals' table. You can move, or remove it, as needed. 
     this.mineralsTableAdapter.Fill(this.ore_stockDataSet1.minerals); 

    } 

    } 
} 

を押すことで、フォームから得られた

コード。

+0

CommandText = ????あなたのコードを投稿してください.. CommandType = ??? – MethodMan

+0

コマンドオブジェクトにコマンドテキストを渡すのは、アダプタの責任です。したがって、おそらくあなたのアダプタの 'SelectCommand'が不足しています。 –

+0

@WiktorZychla - データデザイナでTableAdapterプロパティを表示すると、選択、挿入、および更新コマンドがあることが示されます。 – Sirusx69

答えて

0

データソースを作成すると、selectコマンドはVisualStudioによって自動的に作成されますが、update、insert、およびdeleteコマンドは自動的に作成されません。これらを手動またはSqlCommandBuilderを使用して指定する必要があります。 thisリンクをご覧ください。

+0

私はあなたのアドバイスを取って、そのMSDNサイトを調べました。私はちょっとばかげていましたが、今では "Updateは有効なUpdateCommandを必要としています"というかなり単純なエラーです。私の研究の後、誰もがCommandString BuilderはテーブルにALLを更新する何かを構築することはできないと言います。どのようにしてSaveボタンがDataGridViewerを介して行われたすべての変更を更新するのですか? – Sirusx69

+0

テーブルが1つではなく、結合や何かがある場合は、DataAdapterのUpdateCommandを手動で指定する必要があります。それ以外の場合、SqlCommandBuilderは自動的にupdateコマンドを生成します。このリンクをチェックしてください:http://stackoverflow.com/questions/588361/update-requires-a-valid-updatecommand-when-passed-datarow-collection-with-modifi –

+0

これは単一のテーブルです。私が言ったように、データソースウィンドウからWindowsフォームにドラッグアンドドロップするだけで、データグリッドビューと変更ボタン(オープン/保存など)が自動的に設計されました。あなたも私をリンクしているページをよく理解していません。私はすでにmineralsTableAdapterとしてデータアダプタを持っていますが、 "mineralsTableAdapter.Fill(this.ore_stockDataSet1.minerals)"を実行しても、 "updateコマンド"が設定されていないことが返されます。 – Sirusx69

関連する問題