4 回答

TA贡献1825条经验 获得超4个赞
这里:
string value = "me@live.com";
DataView dv = new DataView(dt);
dv.RowFilter = "email = "+value;
你正在做的是:
DataView dv = new DataView(dt);
dv.RowFilter = "email = me@live.com";
因此,您缺少包含文字字符串的撇号。你应该改用这个:
string value = "'me@live.com'";
所以得到的过滤器是:
dv.RowFilter = "email = 'me@live.com'";
由于您可能从其他地方收到电子邮件(而不是硬编码在文件中),如果您使用的是 C# 6.0 或更高版本,则可以改为:
string value = "me@live.com";
DataView dv = new DataView(dt);
dv.RowFilter = $"email = '{value}'";

TA贡献1860条经验 获得超8个赞
尝试这个。
using (SqlConnection connection = new SqlConnection(conn))
{
connection.Open();
var query = "select * from mytable WHERE email = 'me@live.com'";
SqlCommand mycommand = new SqlCommand(query,connection);
// SqlDataReader dataReader = mycommand.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(mycommand.ExecuteReader());
DataView dv = new DataView(dt);
dataGridView1.DataSource = dv.ToTable();
// dataGridView1.DataSource = dt;
}

TA贡献1877条经验 获得超1个赞
为什么在从数据库中获取整个数据后进行过滤?只需在查询本身中过滤它:
select * from mytable where email = 'me@live.com'

TA贡献1810条经验 获得超5个赞
试试这个,让我知道它是否有效
using (SqlConnection connection = new SqlConnection(conn))
{
connection.Open();
SqlCommand mycommand = new SqlCommand("select * from mytable",connection);
// SqlDataReader dataReader = mycommand.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(mycommand.ExecuteReader());
string value = "me@live.com";
DataView dv = new DataView(dt);
dv.RowFilter = "email LIKE %'" + value + "'%";
dataGridView1.DataSource = dv.ToTable();
// dataGridView1.DataSource = dt;
}
- 4 回答
- 0 关注
- 179 浏览
添加回答
举报