除非我误解你的问题,它应该是一个简单的事情,添加另一个参数。
using (SqlCommand cmd = new SqlCommand(
"INSERT INTO [Orders] (info, Price, VAT, Customer_ID) VALUES (@info, @Price, @VAT, @Customer_ID)"))
{
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@info", input1.Text);
cmd.Parameters.AddWithValue("@Price", input2.Text);
cmd.Parameters.AddWithValue("@VAT", input3.Text);
cmd.Parameters.AddWithValue("@Customer_ID", input4.Text);
conn.Open();
cmd.ExecuteNonQuery();
}
如果没有CUSTOMER_ID作为输入域,并希望使其始终创建一个订单客户“1”,然后执行以下操作
using (SqlCommand cmd = new SqlCommand(
"INSERT INTO [Orders] (info, Price, VAT, Customer_ID) VALUES (@info, @Price, @VAT, 1)"))
{
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@info", input1.Text);
cmd.Parameters.AddWithValue("@Price", input2.Text);
cmd.Parameters.AddWithValue("@VAT", input3.Text);
conn.Open();
cmd.ExecuteNonQuery();
}
反之,如果你想要做看看哪个客户订单是更加动态的,我们将首先需要关于您的数据输入的更多信息。您需要执行select查询来查找customer_ID,然后将其作为参数传入,或者仅在插入查询中进行子选择。
编辑:
下面是使用动态查询代码,您在留言
using (SqlCommand cmd = new SqlCommand(
"INSERT INTO [Orders] (info, Price, VAT, Customer_ID) SELECT @info, @Price, @VAT, CustomerID FROM Customer WHERE Name = @Username)"))
{
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@info", input1.Text);
cmd.Parameters.AddWithValue("@Price", input2.Text);
cmd.Parameters.AddWithValue("@VAT", input3.Text);
cmd.Parameters.AddWithValue("@Username", SomeVariableWithUsername);
conn.Open();
cmd.ExecuteNonQuery();
}
我不想输入外键...我想从目前的阅读登录的用户 – aiden87
好吧,有没有在客户表与登录用户当前匹配的领域? 如果是这样,那么您可以使用客户表中的唯一标识信息来查找正确的客户。 在您查询将会像 'INSERT INTO [常规](信息,价格,增值税,CUSTOMER_ID)选择@info,@price,@VAT,从客户WHERE名称= @用户)' 然后,只需添加@UserName这种情况下,作为另一个参数 –
不,你可以在我的问题中看到我的领域。 Customer_ID应该是数字1 ....基于此,客户可以得到他的订单信息 – aiden87