だから私はとを持っていtextbox
ますbutton
。に値を入力したいのですが、呼び出された「チケット」からtextbox
入力した値が見つかります。次に、「リベートスリップ」と呼ばれる「リベートスリップ」を作成したいと思います。これには2つのフィールドがあります。これは自動インクリメントされ、これは私が入力した値です(したがって、基本的には、見つけたばかりのIを「RebateSlip」テーブルに渡します)。すべての関数を呼び出された「モデル」に入れてから、イベントハンドラーで呼び出します。row
table
object
table
table
id
ticketId
textbox
ticketId
class
button
public bool rebateslip(int ticketID)
{
SqlCommand myCommand = new SqlCommand("SELECT ID FROM ticket WHERE ID = @ticketID", con);
SqlDataAdapter sqlDa = new SqlDataAdapter(myCommand);
myCommand.Parameters.AddWithValue("@ticketID", ticketID);
var reader = myCommand.ExecuteReader();
return reader.HasRows;
}
public void createRebateslip(int ticketId)
{
SqlCommand myCommand = new SqlCommand("INSERT INTO RebateSlip (ticketId) VALUES (@ticketId); SELECT SCOPE_IDENTITY();", con);
myCommand.Parameters.AddWithValue("@ticketId", ticketId);
string insertID = (myCommand.ExecuteScalar()).ToString();
rebateSlipList.Add(new RebateSlip(Int32.Parse(insertID), ticketId));
}
これは1つの番号で機能しますが、別の番号を入力しようとするとエラーが発生します。コマンドに関連付けられtextbox
たオープンがすでに存在し、最初にクローズする必要があります。DataReader
ボタンのコードは次のとおりです。値がテーブルにある場合は、「rebatelip」を作成する必要がありますが、それも機能していません。
private void buttonPrintRebateSlip_Click(object sender, EventArgs e)
{
int id;
if (!int.TryParse(textBoxRebateSlip.Text, out id))
{
return;
}
if (model.rebateslip(id))
{
MessageBox.Show("Found ticket");
//create rebate slip object
model.createRebateslip(id);
textBoxRebateSlip.Clear();
}
else
{
MessageBox.Show("Ticket not in database");
textBoxRebateSlip.Clear();
}
}