C# 控制台应用程序中的存储过程
我已经创建了控制台应用程序:C# 控制台应用程序中的存储过程,c#,stored-procedures,console-application,C#,Stored Procedures,Console Application,我已经创建了控制台应用程序: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Objects; namespace ConsoleApplication3 { class Program { static void Main(string[] a
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Objects;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
NorthwindEntities nwe = new NorthwindEntities();
var customerOrdersDetail = nwe.CustOrdersDetail(10248);
foreach (var ordersDetail in customerOrdersDetail)
{
Console.WriteLine(ordersDetail.ProductName);
Console.WriteLine(ordersDetail.UnitPrice);
Console.WriteLine(ordersDetail.Quantity);
Console.WriteLine(ordersDetail.ExtendedPrice);
Console.WriteLine(ordersDetail.Discount);
Console.ReadLine();
}
}
}
}
它显示了我在
nwe.customordersdetail()中输入ID的产品的所有详细信息代码>,但我很感兴趣,我可以在应用程序启动时直接将ID输入到应用程序中吗?当我想显示其他产品的信息时,最好不要重新启动应用程序。解析args数组并传递它,如下所示:
var customerOrdersDetail = nwe.CustOrdersDetail(int.Parse(args[0]));
ConsoleApplication3 10248
ConsoleApplication3 10249
ConsoleApplication3 10250
这样,您可以从命令行使用它,如下所示:
var customerOrdersDetail = nwe.CustOrdersDetail(int.Parse(args[0]));
ConsoleApplication3 10248
ConsoleApplication3 10249
ConsoleApplication3 10250
您需要隔离获取订单详细信息项目的功能,并将其放入可以重复调用的内容中,因为这只是一个控制台应用程序,类似的内容应该可以用来演示:
private static void Main(string[] args)
{
FetchOrderDetail();
}
private static void FetchOrderDetail()
{
string input = string.Empty;
while (input != "exit")
{
Console.WriteLine("Enter order detail ID: ");
input = Console.ReadLine();
int orderId = 0;
if (Int32.TryParse(input, out orderId))
{
var customerOrdersDetail = nwe.CustOrdersDetail(orderId);
foreach (var ordersDetail in customerOrdersDetail)
{
Console.WriteLine(ordersDetail.ProductName);
Console.WriteLine(ordersDetail.UnitPrice);
Console.WriteLine(ordersDetail.Quantity);
Console.WriteLine(ordersDetail.ExtendedPrice);
Console.WriteLine(ordersDetail.Discount);
Console.ReadLine();
}
}
}
}
您可以在一个循环中写入,直到遇到(或不遇到)仅通过Console.ReadLine()接收ID的情况,或者您可以在开始时使用字符串[]args传递ID(尽管在第一个循环中“更改”ID似乎更困难)
为什么不简单地输入要运行的ID列表,并从args数组访问它们:
foreach (var input in args)
{
Console.WriteLine(int.Parse(input));
}
可以这样称呼它:ConsoleApplication3 10248 10249 10250
您可以在一个循环中编写,直到遇到(或不遇到)某个东西,而该东西只是通过Console.ReadLine()
接收ID,或者您可以使用string[]args
在开始时传递ID(尽管这似乎更难“更改”第一个上面的ID…另外,这个问题标题/标记与存储过程有什么关系?:b因为所有内容都与名为customordersdetail的存储过程相连接。我没有在开始时澄清它,我的错。