-1

Excel シートと GridView の sql サーバー データテーブルの間で重複する行を表示しようとしています。

これは私のコードです:

var matched = (from table1 in dt4.AsEnumerable()
                join table2 in oltlb.AsEnumerable() on
                table1.Field<int>("ID") equals table2.Field<int>("ID")
                where table1.Field<string>("Data") == table2.Field<string>("Data")
                select table1);
DataTable dthi5 = new DataTable();
dthi5 = matched.CopyToDataTable();

GridView で var の値を表示できますか?

4

3 に答える 3

1

はい、変数で埋めることができます。(この場合、キャストする必要があります.ToList())

var強く型付けされていることを理解する必要があります。変数の型を切り替えることができるphpとは異なります。

書いてみる

var x = null;

Visual Studio で。エラーがでます!

あなたのvar 毎回は型安全であると宣言する必要があります。これは、プログラマーが常に変数の前に長い型名を記述する必要がないようにするための短い呪文です。したがって、varあなたの場合は anIEnumerable<T>です。

于 2012-10-25T09:03:29.790 に答える
1

これを試して

var matched = (from table1 in dt4.AsEnumerable()
                  join table2 in oltlb.AsEnumerable() on
                table1.Field<int>("ID") equals table2.Field<int>("ID")
                  where table1.Field<string>("Data") == table2.Field<string>("Data")
                  select table1);
      DataTable dthi5 = new DataTable();
      dthi5 = matched.CopyToDataTable();

myGridView.DataSource = dthi5;
myGridView.DataBind();

または

myGridView = matched.ToList();
myGridView.DataBind();
于 2012-10-25T09:12:37.733 に答える
0

間違いなく var を gridview にバインドできます。

3 つのフィールドを持つ従業員テーブルがあるとします。

emp_id emp_fname emp_lname

最初の方法: テーブル全体または特定のレコードを var に指定すると、一覧表示が機能します...

employees は、SQL サーバーへの接続が正常に確立されると、データ コンテキスト クラスになります。

var result = from alias in dc.employees
          where alias.emp_id == id --(this is the passed parameter)

次のように、ID を手動で指定することもできます。

where alias.emp_id == 5
          select alias;

id = 5 を持つ従業員レコード全体が選択されます。

これを単純に gridview にバインドできるようになりました

gridview1.datasource = result.tolist();
gridview1.databind();

テーブル全体を与えると、tolistも機能します

var result  = from alias in dc.employess
              select alias;

gridview1.datasource = result.tolist();
gridview1.databind();

複数の列を選択すると、tolist は機能しません。オブジェクトを返す必要があります。

メソッドは class1 で定義されています。

public static object returnquery()
{

dcdatacontext dc = new dcdatacontext();

var result = from alias in dc.employees
             where alias.emp_id == 5
             select new
             {
                alias.emp_fname,
                alais.emp_lname
             };

 return result;
}

オブジェクトをキャッチする必要があります。

object obj = new class1.returnquery();

gridview1.datasource = obj;
gridview1.databind();

または、これを試して、動作するかどうかを確認することもできます。私はこれを実際に試していません。

var result = from alias in dc.employees
             where alias.emp_id == 5
             select new
             {
                alias.emp_fname,
                alias.emp_lname
             };

gridview1.datasource= result.object();
gridview1.databind();
于 2013-08-15T02:39:36.197 に答える