我想将数据库中的表达到的数量增加到-example:
我的[CustomerNo]
达到了50,我关闭了应用程序,再次打开它,我希望它从50(++)完成,我希望数字从1开始,如果它们达到250
Globals.order ++;是我用的。
这是我的代码:
private void Order()
{
using (SqlConnection connection = new SqlConnection(connectionString1))
{
String query = "INSERT INTO Tbl_order (OrderName,Quantity,Price,Serves_way,Date,CustomerNo) VALUES (@OrderName,@Quantity, @Price,'" + servers + "','" + time1.ToString(format1) + "','" + Globals.order + "' )";
Globals.order++;
connection.Open();
using (SqlCommand command = new SqlCommand(query, connection))
{
// Add the length of this text column as third parameter...
command.Parameters.Add("OrderName", SqlDbType.NVarChar, 50);
command.Parameters.Add("Quantity", SqlDbType.Int);
command.Parameters.Add("Price", SqlDbType.Money);
command.Prepare();
for (int i = 0; i < lst_OrderName.Items.Count; i++)
{
command.Parameters[0].Value = lst_OrderName.GetItemText(lst_OrderName.Items[i]);
command.Parameters[1].Value = Convert.ToInt32(lst_QTY.Items[i]);
command.Parameters[2].Value = Convert.ToDouble(lst_Price2.Items[i]);
command.ExecuteNonQuery();
}
}
}
}
但是当我关闭应用程序时,它会再次从0重新启动。
答案 0 :(得分:0)
您将获得上次使用的记录:
select customerno
from tbl_order
order by date desc
limit 1;
如果返回50,那么下一个要使用的数字将是51.但是,不清楚是否总是插入新记录,或者您是否一次在表中有250条记录并开始更新旧记录。如果是后者,您可能需要使用INSERT ... ON DUPLICATE KEY UPDATE
。
答案 1 :(得分:0)
如果您希望在关闭应用程序后保留值,则可能需要将其存储在数据库中。
您的Globals.order ++的目的是什么?
如果要增加订单号,您应该在数据库上使用某些内容,例如表上的AUTO INCREMENT列。这意味着无论何时插入新值,该值都会增加1.然后,您可以使用代码查找最近添加的数字。
如果你想让它在某一点重置,MySQL没有序列,但这可能会有所帮助:
How do I create a sequence in MySQL?
这有意义吗?