이 코드는 쿼리에서 반환 한 모든 행에 대해이 코드를 사용하여 결과를 필터링해야하는 경우 query.length()라는 항목을 제공합니다.
편집
확인이, 내가, 당신은 ADO 말을하지만 변수 명명 않는 당신이 (다시 게시하시기 바랍니다하지 않은 경우) 엔티티 프레임 워크를 사용하려고하는 추측하고 그래서 작은 테스트 케이스를 쓴 날 귀찮게 그래서 이것은 보통의 오래된 ADO가 아닐 수 있음을 나타냅니다.
그래서 내 데이터베이스 테이블 만들기 스크립트입니다. 내 appication에서
이제
USE [Customers]
GO
/****** Object: Table [dbo].[Customer] Script Date: 04/02/2012 11:16:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Customer](
[id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Zip] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
가지고있다이
public partial class Form1 : Form
{
private readonly CustomersEntities _entities =
new CustomersEntities(ConfigurationManager.ConnectionStrings["CustomersEntities"].ConnectionString);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
var query =
_entities.Customers.Where(c => c.Zip == "12345").Select(
c => new CustomerDataBinding {Name = c.Name, Zip = c.Zip});
Controls.Add(dataGridView1);
dataGridView1.DataSource = query;
}
}
public class CustomerDataBinding
{
public string Zip { get; set; }
public string Name { get; set; }
}
나는 세 개의 동일한 우편 번호와 해당 데이터베이스에 두 개의 레코드 (그것 아닌 실제 zip 형식을 중요하지 않습니다) 및없이 하나가 (SQL을 사용하여 자신의 데이터 삽입).
이 코드를 실행하면 2 명의 고객이 예상대로 그리드에 반환되고 3 명이 반환되지 않습니다.
이 점을 이해하는 가장 좋은 방법은 아니지만 기본 예제에서는 작동합니다.
그런데이 앱은 안녕 왜 나를 query.length주고있다
실행에 보인다? c.CustomerName을 선택하면 77080의 zipcode에있는 모든 customerNames를 제공하지 않아야합니까 ?? – IrtizaRizvi
은 쿼리가 필드 고객 이름 값과 같기 때문에 선택한 각 고객의 이름이 첫 번째 이름 (해당 값이 null 인 경우에도)이므로 항목이므로 여전히 query.length는 ZIP 77080의 고객과 같습니다. 그것이 바로 이유입니다. SQL 쿼리를 시도하고 동일한 결과를 확인할 수 있습니다. 77080에있는 모든 고객의 길이가 아니라 모든 고객의 길이를 알려주는지를 말하고 있습니까? 쿼리 수를 계산하면 어떻게됩니까? –
변경된 예를 붙여 넣으세요. 발생하는 것을 확인하세요. –