私はこの仕事をしようとしています。
データベースにこのテーブルがあります。
items_table
------------------
Item_Name | Item ID
A | 1
B | 1
C | 2
D | 2
E | Null
F |
G | 1
H |
I | Null
Select * from items_table where Item_ID is Null or Item_ID is empty
Loop(while there are items without Item_ID)
Check the count of first Item_ID
if first Item_ID count is less than 8
(update items_table values (current Item_ID ) where Item_Name is current row Item_Name )
otherwise check next Item_ID
If no Item_ID count is less than 8, insert max((Item_ID)+1) where Item_Name is current row Item_Name
上の表の場合、このコードは次のようにする必要があります。
E、F、H、Group_ID が null または空です
ここで、これらすべてのアイテムに Item_ID を挿入する必要があります。
テーブル内のすべての既存の Item_ID の最初のチェック数。8 個未満のアイテムで item_ID が使用されている場合は、現在のアイテムにその Item_ID を挿入します。カウントが 8 未満の Item_ID がない場合は、新しい Item_ID を作成します。最大 Item_ID + 1 にする必要があります。
私はこれを書き込もうとしていますが、行をループして ID をカウントし、既存の ID または新しい ID を挿入する方法がわかりません。
private static void FIllGroupID(string connectionString)
{
string queryStringNoGroupID =
"Use Items select * from table_items_shelves where Item_ID is Null or Item_ID = '';";
SqlCommand GetAllWithoutID = new SqlCommand(queryStringNoGroupID);
DataTable DataTableAllWithoutID = new DataTable();
SqlDataAdapter adapterAllWithoutID = new SqlDataAdapter(GetAllWithoutID);
adapterAllWithoutID.Fill(DataTableAllWithoutID);
foreach (DataRow row in DataTableAllWithoutID.Rows)
{
}
}
既存の item_ids をループしてカウントするにはどうすればよいですか。count が 8 未満の場合は、現在の行に同じ ID を挿入するか、max(item_id)+1 を作成して挿入します。