2

datasetを使用してユーザー入力をクエリまたは照合しようとしていますDataTable:

1 つのテーブルから 1 つの列のみを選択するストアド プロシージャからデータセットを作成しています: 例: UserID 列。**表の内容全体を選択しているわけではありません。*

public static DataSet LoadProfile()
{
    SqlCommand cmdSQL = new SqlCommand("usp_LoadProfile", ConnectDatabase);
    cmdSQL.CommandType = CommandType.StoredProcedure;

    SqlDataAdapter daSQL = new SqlDataAdapter(cmdSQL);
    DataSet ds = new DataSet();
    daSQL.Fill(ds);

    try
    {
        ConnectDatabase.Open();
        cmdSQL.ExecuteNonQuery();
    }
    catch(Exception)
    {
        StatusMsg = ex.Message;
    }
    finally
    {
        ConnectDatabase.Close();
        cmdSQL.Parameters.Clear();
        cmdSQL.Dispose();
    }
    return ds;
}

フォーム ロード イベントで次のメソッドを呼び出しています。ロードからデータセットにデータを入力する必要があります。

public static DataTable LoadData()
{
    DataSet dsView = new DataSet();
    dsView = LoadProfile();
    DataTable tblExample = dsView.Tables["Example"];

    return tblExample;
}

最後に私がやりたいことは、DataTable.

ボタンイベントにこれがあります:

DataRow[] results;
results = LoadData().Select(txtExample.Text);

この時点を超えて、for ループを使用できますが、1 人につき 1 つのレコードしかありません。

データテーブルを介してユーザーエントリをデータセットと一致させようとしています。

4

2 に答える 2

3

最後の行は

DataRow[] results;
results = LoadData().Select("UserID = '" + txtExample.Text +"'");

UserID がテキスト型のフィールドであるとします。代わりに数値型の場合は、引用符を削除します

results = LoadData().Select("UserID = " + txtExample.Text);

LoadProfileただし、呼び出しに続くコードdaSQL.Fill(ds);は不要であり、削除できることを指摘する必要があります (ただし、DataSet を返すだけです)。

于 2013-09-14T22:18:00.143 に答える