Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c选择datatable上具有特定数据的所有记录_C# - Fatal编程技术网

C# c选择datatable上具有特定数据的所有记录

C# c选择datatable上具有特定数据的所有记录,c#,C#,我计划选择datatable中第2列有“Dog”的所有行,而不在查询中使用关键字WHERE。我的猜测是尝试使用DataRow和foreach,但我不确定从哪里开始。我用数据库中的记录填充数据表,这就是我到目前为止所做的 using(MySqlConnection con = new MySqlConnection(constring)) { MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1",co

我计划选择datatable中第2列有“Dog”的所有行,而不在查询中使用关键字WHERE。我的猜测是尝试使用DataRow和foreach,但我不确定从哪里开始。我用数据库中的记录填充数据表,这就是我到目前为止所做的

   using(MySqlConnection con = new MySqlConnection(constring))
   {
   MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1",con);
   DataTable dt = new DataTable();
   adp.Fill(dt);
   adp.Dispose();
   }
这就是我的数据表的外观:

   Column1 Column2  Column3
   1       Dog      Labrador
   2       Dog      Chowchow
   3       Cat      Persian
   4       Cat      Stubby
   5       Dog      German Shepherd

使用where来区分:

   using(MySqlConnection con = new MySqlConnection(constring))
   {
   MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1,con);
   DataTable dt = new DataTable();
   adp.Fill(dt);
   IEnumerable<DataRow> query = adp.Where(x => x.Column2 == 'dog').ToList();

   DataTable filteredRows = query.CopyToDataTable<DataRow>();

   adp.Dispose();
   }

使用where来区分:

   using(MySqlConnection con = new MySqlConnection(constring))
   {
   MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1,con);
   DataTable dt = new DataTable();
   adp.Fill(dt);
   IEnumerable<DataRow> query = adp.Where(x => x.Column2 == 'dog').ToList();

   DataTable filteredRows = query.CopyToDataTable<DataRow>();

   adp.Dispose();
   }
在查询中创建where语句,如下示例所示

   MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1 WHERE Column2='Dog'",con);
在查询中创建where语句,如下示例所示

   MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1 WHERE Column2='Dog'",con);

在使用数据适配器填充表时,可以通过修改“选择查询”来筛选记录:

SELECT * FROM table1 WHERE  Column2='Dog'
第二种方法,如果以后需要过滤,则使用此方法-:

参考资料:

在使用数据适配器填充表时,您可以通过修改“选择查询”来筛选记录:

SELECT * FROM table1 WHERE  Column2='Dog'
第二种方法,如果以后需要过滤,则使用此方法-:

参考资料: 您正在寻找SQL子句。如果参数值是用户提供的,则始终使用或类似于将变量插入到查询中可防止潜在的错误

string genusInput = "Dog"; // might be provided by user input later on

DataTable result = new DataTable();

using (MySqlConnection con = new MySqlConnection(constring)) {

    const string query = "SELECT * FROM table1 WHERE Column2 = @genus";    
    var adp = new MySqlDataAdapter(query, con);
    adp.SelectCommand.Parameters.AddWithValue("@genus", genusInput);
    adp.Fill(result);
    adp.Dispose();
}
您正在寻找SQL子句。如果参数值是用户提供的,则始终使用或类似于将变量插入到查询中可防止潜在的错误

string genusInput = "Dog"; // might be provided by user input later on

DataTable result = new DataTable();

using (MySqlConnection con = new MySqlConnection(constring)) {

    const string query = "SELECT * FROM table1 WHERE Column2 = @genus";    
    var adp = new MySqlDataAdapter(query, con);
    adp.SelectCommand.Parameters.AddWithValue("@genus", genusInput);
    adp.Fill(result);
    adp.Dispose();
}

我知道怎么做,先生,我要做的是从数据表中选择。我之所以这么做是为了满足我的好奇心。我真的很抱歉。我知道怎么做,先生,我想做的是从数据表中选择。我之所以这么做是为了满足我的好奇心。我真的很抱歉,耶!我要试试这个,先生,一旦它起作用,我就把它标记为答案。你一定会得到我想要的。非常感谢你。我知道如何使用Where,但我不知道如何在datatable上做同样的事情。非常感谢。很容易理解和理解。耶!我要试试这个,先生,一旦它起作用,我就把它标记为答案。你一定会得到我想要的。非常感谢你。我知道如何使用Where,但我不知道如何在datatable上做同样的事情。非常感谢。很容易理解和理解。为什么你不想在哪里使用?这正是你需要的。为什么你不想用在哪里?这正是你需要的。