所以我有一个textbox
和一个button
。我想在其中输入一个值,它会从被调用的“票证”textbox
中找到我在其中输入的值。然后我还想在一个名为“Rebateslip”的文件中创建一个“rebateslip”。这有 2 个字段 - 一个是自动递增的,一个是我在其中输入的值(所以基本上我只是将我刚刚找到的值传递到“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));
}
它适用于一个数字,但如果我尝试在其中输入另一个数字,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();
}
}