我计划选择数据表中包含“狗”的所有行。在第2列中没有使用关键字" 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
答案 0 :(得分:1)
使用何处区分:
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();
}
答案 1 :(得分:1)
您可以通过修改选择查询来使用数据适配器填充表时过滤记录:
SELECT * FROM table1 WHERE Column2='Dog'
和第二种方法如果您需要稍后过滤,请使用此方法 - Creating a DataTable From a Query (LINQ to DataSet):
List<DataRow> result = dt.AsEnumerable().Where(row=> row.Field<string>("Column2") = "Dog").ToList();
您可以使用DataView过滤记录,并使用RowFilter属性,如下所示:
// Create a DataView
DataView dv = new DataView(dt);
// Filter by an expression.
dv.RowFilter = "Column2 = 'Dog'";
DataTable newTable = view.ToTable();
<强>参考文献:强>
Creating a DataTable from a DataView
答案 2 :(得分:1)
您正在寻找SQL WHERE
子句。始终使用SqlParameter
或类似内容将变量插入查询中(如果用户提供了参数值,则阻止潜在SQL injection attacks。)
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();
}
答案 3 :(得分:1)
using(MySqlConnection con = new MySqlConnection(constring))
{
MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1",con);
DataTable dt = new DataTable();
adp.Fill(dt);
adp.Dispose();
DataRow[] dr=dt.select(“Column2=‘Dog’”);
}
https://msdn.microsoft.com/en-us/library/det4aw50(v=vs.110).aspx
答案 4 :(得分:0)
在查询中创建where
语句,如下所示
MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM table1 WHERE Column2='Dog'",con);