このコードは、このコードで与えられた結果をフィルタリングする必要がある場合は、query.length()で返されるすべての行のエントリを提供します。
編集
OKこれは、私は、あなたが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(それはそのない本当のzip形式の問題ではありません)と1つのない(と、そのデータベース2内の3つのレコードを持ってきていますSQLで独自のデータを挿入します)。
私はこのコードを実行すると、グリッドに2人の顧客が返され、3人が返されることはありません。
これは正確にこれを実現する最良の方法ではありませんが、基本的な例では機能します。
経由でアプリがHiはなぜそれは私がquery.length与えている
実行時にに見えますか? c.CustomerNameを選択すると、77080の郵便番号に住んでいるすべてのcustomerNamesを私に渡すことはできませんか? – IrtizaRizvi
は、クエリがフィールドの顧客名の値と等しいため、選択された各顧客がファーストネーム(その値がヌルであっても)がまだエントリであるため、query.lengthはZIP 77080の顧客と同等です。それが理由です。 SQLクエリを試してみて、結果が同じであることを確認してください。あなたは私に77080のものだけでなく、すべての顧客の長さを与えることを教えていますか?クエリでカウントするとどうなりますか? –
変更された例、これを貼り付けて、何が起こるかを見てみてください –