1

情報を入力して送信ボタンを押すと、button1_click() がデータベースにデータを挿入する Web サイトがあります。日付と「0001」を取得してテキストボックスに入力するIDを生成する別のボタンがあります。サーバー側コードを使用して、関数がデータベースに 0001 があるかどうかをチェックし、データベースにある場合は代わりに '0002' を入れるようにするにはどうすればよいですか? パラメータを使用する必要があることはわかっていますが、その仕組みとデータベースの更新に使用されるコードについて混乱しています..これが私のコードです

 protected void Button1_Click(object sender, EventArgs e)
    {

        SqlCommand cmd = new SqlCommand("insert into John_IEP_Crossing_Dock_Shipment values('" + generateidtxt.Text + "','" + hawbtxt.Text + "','" + invrefpotxt.Text + "','" + hppartnumtxt.Text + "','" + iecpartnumtxt.Text + "','" + qtytxt.Text + "','" + bulkstxt.Text + "','" + boxplttxt.Text + "','" + rcvddatetxt.Text + "','" + statustxt.Text + "','" + carriertxt.Text + "','" + shippertxt.Text + "', '', '','','','','',GETDATE(),GETDATE())", con);
        cmd.ExecuteNonQuery();
        con.Close();
        generateidtxt.Text = "";
        hawbtxt.Text = "";
        invrefpotxt.Text = "";
        hppartnumtxt.Text = "";
        iecpartnumtxt.Text = "";
        qtytxt.Text = "";
        bulkstxt.Text = "";
        boxplttxt.Text = "";
        rcvddatetxt.Text = "";
        statustxt.Text = "";
        carriertxt.Text = "";
        shippertxt.Text = "";
        con.Dispose();

    }

    protected void generateid_Click(object sender, EventArgs e)
    {
        generateidtxt.Text = "from DB";
    }
}

これが私が使用する必要があると思うSQLコマンドです..

 insert John_IEP_Crossing_Dock_Shipment (ID)
  select ID = Left(max(ID),10) + '-' + RIGHT('000' + convert(varchar,convert(int,right(max(ID),4)) + 1), 4)
  from John_IEP_Crossing_Dock_Shipment 
  where Left(ID,10) = convert(varchar(10), Getdate(),20)

  select ID = Left(max(ID),10) + '-' + RIGHT('000' + convert(varchar,convert(int,right(max(ID),4)) + 1), 4)
  from John_IEP_Crossing_Dock_Shipment 
  where Left(ID,10) = convert(varchar(10), Getdate(),20)
4

1 に答える 1