1

Ultrawebgrid-Update イベントを使用しています::

protected void UltraWebGrid1_UpdateRow(object sender, RowEventArgs e)

だから、データテーブル(データセット内)の行(グリッドで更新)を更新したい

データテーブルには主キーもありません.. そのようなデータテーブルで行を見つけるにはどうすればよいですか?

たとえば、私は行くことができます

UltraGridRow oldrow = (UltraGridRow) e.Data;

oldrowさて、データセットで更新できるように、同じ行(データセット内のデータテーブル内)を見つけるにはどうすればよいですか?

データテーブルに主キーがありません

4

2 に答える 2

1

データベース テーブル内の行を一意に識別する何らかの方法が必要です。通常、データベース テーブルには、主キーとして機能することでこの目的を果たすフィールドが 1 つまたは複数あります。あなたが言っていることから、テーブルには主キーがないようです。それでも、主キーのように機能するために使用できるデータの組み合わせが必要です。

たとえば、テーブルはユーザー情報を保持し、髪の色、身長、体重、住所、年齢を組み合わせることで、ユーザーを一意に識別するのに十分な場合があります。なぜこれをしたいのか、私には少し混乱しますが、これをしたいのには十分な理由があると推測できます. この組み合わせを定式化したら、これらの人をwhereSQL UPDATE ステートメントの句に入れて、更新する行を識別する必要があります。

UPDATE TABLE_WITH_NO_PRIMARY_KEY SET NAME = 'Bobby Tables'
  WHERE HAIR_COLOUR = 'RED' AND HEIGHT = '215' AND SO ON

これを行うことのリスクは、複数のユーザーが同じ識別機能を持っている状況に遭遇する可能性があることです (双子である可能性があります)。 そのため、update ステートメントは 1 つだけではなく両方の行を更新します。

于 2009-04-14T09:22:19.717 に答える
0

この場合、すべての行を反復処理したくない場合は、LinqToDataSets を使用する必要があります。LinqToDataSet の例は、ここここにあります。

LinkText 1: http://msdn.microsoft.com/en-us/vbasic/bb688086.aspx

LinkText 2: http://msdn.microsoft.com/en-us/library/bb386977.aspx

于 2009-04-14T09:23:22.193 に答える