2

我正在尝试dataset使用 a查询或匹配用户输入DataTable

我正在从一个存储过程中填充数据集,该过程仅从单个表中选择一个列:示例: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 循环,但每个人只有一条记录。

我正在尝试通过数据表将用户条目与数据集匹配。

4

2 回答 2

3

最后一行应该是

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

假设 UserID 是一个文本类型的字段。如果不是数字类型,则删除引号

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

但是我应该指出,不需要LoadProfile遵循调用的代码,您可以将其删除(尽管只返回 DataSet)daSQL.Fill(ds);

于 2013-09-14T22:18:00.143 回答
2

对数据集使用以下简单查询:

DataRow[] dRow = dataSetName.Tables[0].Select("fieldToMatch = '" + userInput.ToString() + "' ");
于 2018-06-30T11:33:59.543 回答