2

データベースの代わりにデータテーブルを使用したいというネット初心者です。データ テーブル クエリが SQL クエリと異なるのはなぜですか? データテーブルから値を見つけたい:

  SELECT dbo.General_Ledger.Entry_Amount FROM dbo.General_Ledger WHERE Account_number=lbDebit_Account_numer

using (SqlConnection connect = new SqlConnection(con))
        {
            int index = lbDebit_Account.FindString(txtDebit_Account.Text);
            if (0 <= index)
            {
                lbDebit_Account.SelectedIndex = index;
            }
            SqlDataAdapter da3 = new SqlDataAdapter("SELECT *FROM dbo.General_Ledger", connect);

            DataTable dt1 = new DataTable();
            da3.Fill(dt1);
            string lbDebit_Account_numer = lbDebit_Account.SelectedValue.ToString();
            string row;
            row= Convert.ToString(dt1.Select(string.Format("'Account_number'={0}",lbDebit_Account_numer)));
        }

このクエリを実行したい:

SELECT dbo.General_Ledger.Entry_Amount FROM dbo.General_Ledger WHERE Account_number=lbDebit_Account_numer
4

3 に答える 3

0

DataTable クラスの DefaultView.RowFilter プロパティを使用してみることができます。

例:

dataTable.DefaultView.RowFilter = "Account_number=1"; 
于 2013-04-03T08:42:30.480 に答える
0

非常に簡単です。この文字列 [lbDebit_Account_numer] に基づいて DataTable[dt1] をフィルタリングしたいのです。

DataRow dr = dt1.Select("Account_number = '"+lbDebit_Account_numer ="'"); 

あなたは使うことができます

およびまたは

オペレーター

単一のコード ['] 比較する文字列変数が必要です。

ここでデータ行を取得します。すべてのセルは、任意のセルを選択した配列形式になります。

于 2013-04-02T14:46:37.487 に答える
0

したがって、クエリをパラメーター化する必要があります。

SqlDataAdapter da3 = new SqlDataAdapter("SELECT * FROM dbo.General_Ledger WHERE Account_number = @Account_number");
da3.SelectCommand.Parameters.AddWithValue("@Account_number", lbDebit_Account.SelectedValue);

DataTable dt1 = new DataTable();
da3.Fill(dt1);

これで、必要な行が 1 つだけになり、次のように復元できます。

DataRow dr = dt1.Rows[0];

次に、さまざまな方法でその行から値を取得できます。

var val = dr[0]; // grabs the value of the first column in the result list
var val = dr["fieldname"] // grabs the value of a specific field name

また、型付きデータを返すメソッドもいくつかありますobject。これは、基礎となる値がさまざまなものになる可能性があるため、前述のメソッドが を返すためです。したがって、それが文字列フィールドの場合は、次のようなことができます。

var val = dr.Field<string>(0) // grabs the value of the first column and returns it typed as a string
var val = dr.Field<string>("fieldname") // grabs a field and returns it typed as a string
于 2013-04-02T14:14:27.883 に答える