如何在C#程序中访问LINQ中Select实例的输出值

如何在C#程序中访问LINQ中Select实例的输出值,c#,sql,linq,c#-4.0,C#,Sql,Linq,C# 4.0,我不熟悉编写存储过程。所以我写了下面的过程,希望访问我程序中的输出值,热做它 我的存储过程: Create Procedure [dbo].[STP_ExecCarInDriver_SelectByCarCode] @CarCode nchar(10) As Begin SELECT DISTINCT [MachineName] ,[FirstName] ,[LastName] FROM [RoadTrs].[dbo].[ViewExecCarInDriver] WHERE [CarCode]

我不熟悉编写存储过程。所以我写了下面的过程,希望访问我程序中的输出值,热做它

我的存储过程:

Create Procedure [dbo].[STP_ExecCarInDriver_SelectByCarCode]
@CarCode nchar(10)
As
Begin

SELECT DISTINCT
[MachineName]
,[FirstName]
,[LastName]
FROM [RoadTrs].[dbo].[ViewExecCarInDriver]
WHERE [CarCode]=@CarCode

End
并尝试使用以下代码来实例化MachineName、FirstName和Last Name参数:

var Results = rt.STP_ExecCarInDriver_SelectByCarCode(txtCarCode.Text);
string MachineName= Results(0).
但它不起作用

使用以下内容:

        var Results = rt.STP_ExecCarInDriver_SelectByCarCode(txtCarCode.Text).FirstOrDefault();//Use .List() if query return more than one result.
        string MachineName = Results.MachineName;
        string FirstName = Results.FirstName;
        string LastName = Results.LastName;

如果您使用的是LinqtoSql,我建议您不要使用存储过程 (他们成为管理imho的麻烦)

而是使用数据上下文来获取该项

int carcode = 0; //input your code here

var ctx = new RoadTrsDataContext();
var item - ctx.ViewExecCarInDriver.Where(x=>x.CarCode == carcode).FirstOrDefault();
ctx.Dispose();

if(item!= null)
{
var name = item.FirstName;
}

可能会有帮助。您正在使用ADO、链接到实体、linq到sql吗?您的
rt
对象是什么?您正在使用LINQtoSQL吗?还是怎样C#是如何知道您的存储过程的?Farzad M您看过这个链接了吗?也许这对Brian没有帮助。实际上,我认为格式化链接比放置try
this
更容易。例如,OP可能不知道它是实际的链接。。LOLit不起作用,因为没有任何.FirstOrDefault()函数