私の問題は非常に複雑で説明が難しいです。 私は、データテーブル(SQL)に "メンバー"という名前の列 "Lengh"を持っています。 だから、私は、現在の日付よりも低いLenghがあるかどうかをチェックするプログラムを起動するたびに、 "Status"列が失効するようにしたいと思います。テーブルに1行だけあれば正常に動作しますが、それ以上の行があれば1行しか変更されません。 「Lengh」が現在の日付時刻よりも低い行をすべて変更するにはどうすればよいですか?SQL Datatable DateTimeアップデート
InitializeComponent();
SqlDataAdapter dt = new SqlDataAdapter("Select Lengh From Members",con);
DataTable adt = new DataTable();
dt.Fill(adt);
DateTime now = DateTime.Now;
DateTime chip = (DateTime)adt.Rows[0][0];
if (now>chip)
{
SqlDataAdapter dt2 = new SqlDataAdapter("Select [Reconizing ID] From Members Where [Lengh]='" + chip + "'", con);
DataTable adt2 = new DataTable();
dt2.Fill(adt2);
string kd = "Update Members Set Status='" + "Expired" + "' Where [Reconizing ID]='" + adt2.Rows[0][0] + "'";
SqlCommand cmd = new SqlCommand(kd,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
無限ループを行うと、プログラムが起動する前にクラッシュします。
長下に行きますか?非常に奇妙な状態のようです。 – jarlh
「Lengh」と書かれています...タイプミスや外国語の場合は確かではありません。 –
ポスターには:ループを使用する必要があります。おそらく両方のテーブル 'adt'と' adt2'は複数の行を持っていますが、最初の行( 'adt.Rows [0]')とそれから最初の列( 'adt.Rows [0] [0]') )。 'adt2'と同じです。 –