C# 数据集选择列

C# 数据集选择列,c#,dataset,C#,Dataset,我希望在填充数据集后从数据集中选择一个特定列,例如列等级,并将值放入列表中 string excelFile = @"C:\Scores.xlsx"; if (File.Exists(excelFile)) { string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+excelFile+";Extended Properties=Excel 12.0;"; var dataAdapter = ne

我希望在填充数据集后从数据集中选择一个特定列,例如列等级,并将值放入列表中

string excelFile = @"C:\Scores.xlsx";
if (File.Exists(excelFile))
{
    string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+excelFile+";Extended Properties=Excel 12.0;";
    var dataAdapter = new OleDbDataAdapter();
    var objConn = new OleDbConnection(connString);

    //SELECT [Name],[Grade],[Location] ect...
    const string query = "SELECT * FROM [TeamScores$]"; 
    var objCmd = new OleDbCommand(query, objConn);

    var table = new DataSet();
    dataAdapter.SelectCommand = objCmd;
    dataAdapter.Fill(table);               

    //I would like to filter the DataSet to select only [Name] and populate the values into a List<string>

    dataGridView1.DataSource = table.Tables[0]; //Will show all results                

}

您的变量命名让您感到困惑

var table = new DataSet();  // not good at all
数据集不是表。数据集包含数据表

尝试:

DataSet ScoresDataSet = new DataSet();
然后您可以在表上使用Select方法,类似于…:

DataTable ScoresTable = ScoresDataSet.Tables[0]; 

dataGridView1.DataSource = ScoresTable.Select("Your criteria");

您的变量命名让您感到困惑

var table = new DataSet();  // not good at all
数据集不是表。数据集包含数据表

尝试:

DataSet ScoresDataSet = new DataSet();
然后您可以在表上使用Select方法,类似于…:

DataTable ScoresTable = ScoresDataSet.Tables[0]; 

dataGridView1.DataSource = ScoresTable.Select("Your criteria");

希望这能帮助您:

System.Data.DataSet dsTemp2 = new System.Data.DataSet();


if (dsTemp2.Tables[0].Rows.Count <= 0)
    MessageBox.Show("Records not found");
else
{
    foreach (DataRow dRow in dsTemp2.Tables[0].Rows)
    {
        yourtextbox1.Text = dsTemp2.Tables[0].Rows[0][4].ToString();
        yourtextbox2.Text = dsTemp2.Tables[0].Rows[0][5].ToString();
        yourtextbox3.Text = dsTemp2.Tables[0].Rows[0][7].ToString();
    }
}

希望这能帮助您:

System.Data.DataSet dsTemp2 = new System.Data.DataSet();


if (dsTemp2.Tables[0].Rows.Count <= 0)
    MessageBox.Show("Records not found");
else
{
    foreach (DataRow dRow in dsTemp2.Tables[0].Rows)
    {
        yourtextbox1.Text = dsTemp2.Tables[0].Rows[0][4].ToString();
        yourtextbox2.Text = dsTemp2.Tables[0].Rows[0][5].ToString();
        yourtextbox3.Text = dsTemp2.Tables[0].Rows[0][7].ToString();
    }
}

我现在已经解决了一个问题,我可以更改我想要的列的等级,它将显示相关的值

DataTable scoresTable = ScoresDataSet.Tables[0];                
var result = scoresTable.AsEnumerable()
    .Select(r => r.Field<string>("Grade")).Where(r => r != null);

var listOfGrades = result.ToList();

我现在已经解决了一个问题,我可以更改我想要的列的等级,它将显示相关的值

DataTable scoresTable = ScoresDataSet.Tables[0];                
var result = scoresTable.AsEnumerable()
    .Select(r => r.Field<string>("Grade")).Where(r => r != null);

var listOfGrades = result.ToList();

您需要调整此行:

dataGridView1.DataSource = table.Tables[0]; //Will show all results   
例如,这个:

dataGridView1.DataSource = table.Tables[0].Select("yourField=5")); // you filter the datarows where yourField is 5. 


您需要调整此行:

dataGridView1.DataSource = table.Tables[0]; //Will show all results   
例如,这个:

dataGridView1.DataSource = table.Tables[0].Select("yourField=5")); // you filter the datarows where yourField is 5. 


我不知道如何过滤DataSetI中的值我已经编辑了你的标题。请看,如果一致意见是否定的,他们不应该这样做。我不知道如何过滤DataSetI编辑的标题中的值。请看,如果一致意见是否定的,他们就不应该这样做。谢谢你花时间帮助我发布我的方式。谢谢你花时间帮助我发布我的方式