-2

TextBoxとButtonがあり、EmpIDとDateを含むDBがあります。したがって、正確な日付ではなく、日付に応じてEmpIdを削除したいと思います。

DBでEmpId=2およびDate=02/20/2012と仮定します。2012年2月25日または2012年2月1日を入力しても削除できるはずなので、月と年が一致する場合は削除する必要があります。テキストボックスに日付を入力します。

con.Open();
try
{
    SqlCommand Delete = new SqlCommand("delete from Table2 where Date= ('" + TextBox1.Text + "')", con);
    Delete.ExecuteNonQuery();
}
catch (Exception ex)
{
    Console.writeLine("Error");
}
4

5 に答える 5

2

フロントエンドを1つのテキストボックスから2つのコントロールに変更することをお勧めします。最初のものはテキストボックスまたはドロップダウンのいずれかであり、年を送信するために使用されます。2つ目は、月を選択するためのドロップダウンです。これにより、ユーザーは自分が何をしているかをより明確に示すことができます。また、2013-02-30などの無効な日付の問題も解消されます。

バックエンドでは、1年と1か月あれば、そこから取得できるはずです。

于 2013-02-22T14:18:53.310 に答える
1

where句で以下のコードを使用する必要があります

DATE_FORMAT(Date, '%m/%Y') = compare only month and year here in mm/yyyy format.

これがあなたのために働くことを願っています

于 2013-02-22T13:43:05.033 に答える
1

1つの方法は、SQLMONTHおよびYEAR関数を使用することです。

例えば

SqlCommand Delete = new SqlCommand("delete from Table2 where MONTH(Date) = MONTH('" + TextBox1.Text + "') AND YEAR(Date) = YEAR('" + TextBox1.Text + "'), con);
于 2013-02-22T13:47:44.720 に答える
1

まず、テキストボックスを以下のように日時に変換する必要があります

DateTime dateValue =  DateTime.ParseExact(textBox1.Text, "M/d/yyyy", System.Globalization.CultureInfo.InvariantCulture);

変数dataValueから、月と年を取得できます。次に、以下のクエリを使用します

SqlCommand Delete = new SqlCommand("delete from Table2 where  datepart(mm,Date) = '" + dateValue.Month + "' And datepart(year,Date) = '" + dateValue.Year + "'", con);
于 2013-02-22T14:30:15.183 に答える
1

DateTimePikerの代わりにcontrolを使用Textboxし、次のコードを使用します。

SqlCommand Delete = new SqlCommand("delete from Table2 where Date= ('" + datetimepicker.value + "')", con);

Delete.ExecuteNonQuery();
于 2013-02-22T14:44:32.830 に答える