c#将Access数据库中的数据按照查询条件导入datagridview

我现在可以将数据库整个导入datagridview,但我有一些查询条件,比如textbox与某一列的值相等,然后导入这些行,这样怎么写程序呢?要求写一个if语句判断后再导... 我现在可以将数据库整个导入datagridview,但我有一些查询条件,比如textbox与某一列的值相等,然后导入这些行,这样怎么写程序呢?要求写一个if语句判断后再导入。
以下是我的代码:
private void button1_Click(object sender, EventArgs e)
{
dbconn.Open();
string sq1 = "select * from TestData";
OleDbDataAdapter adp = new OleDbDataAdapter(sq1, dbconn);
ds.Clear();
adp.Fill(ds, "TestData");
if (textBox1.Text == "" || textBox2.Text == "") MessageBox.Show("请输入类名和商品名称!");
else
{
int i;
for (i = 1; i < ds.Tables["TestData"].Rows.Count; i++)
{
if (textBox1.Text == ds.Tables["TestData"].Rows[i][0].ToString() && textBox2.Text == ds.Tables["TestData"].Rows[i][3].ToString())
dataGridView1.DataSource = ds.Tables["TestData"].DefaultView; //导入了全部数据库,但我只想导入符合条件的那几行
}
}
}
请大神在以上基础上修改,不要直接用Access的查询功能,谢谢!!!!
回答的好会再追加分数!!!
展开
 我来答
GoddenSave
推荐于2016-03-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3013
采纳率:47%
帮助的人:517万
展开全部
c#将Access数据库中的数据按照查询条件导入datagridview的相关说明如下:

既然限制了不改动SQL这些,那我就直接写最后else里面的代码了,前面就不复制了:
else
{
DataTable dt = ds.Tables["TestData"].Clone(); //复制表结构
foreach(DataRow dr in ds.Tables["TestData"].Rows) //遍历源表
if(dr[0].ToString()==textBox1.Text.Trim()&&dr[3].ToString()==textBox2.Text.Trim())
dt.ImportDataRow(dr); //添加符合条件的行
dataGridView1.DataSource=dt.DefaultView;
}
能够从控件中删除只是说明你的Rows.Remove()这一句代码成功执行了,数据库中的记录没有删除掉那就是SQL语句有问题,看了下你上面的代码,有几个建议:
1、没有必要用DataSet,你操作的就是一张表,DataTable就好了,省得写那么麻烦;
2、既然是删除选中行,那就不要用CurrentCell什么的,直接取SelectedRows中对应列的值;
3、因为不知道你的商品条码是第几列,示例代码就不写了,你先试一下,有问题再提出来就好,希望以上建议能对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouxiang_1216
2014-09-18 · TA获得超过2591个赞
知道大有可为答主
回答量:1286
采纳率:33%
帮助的人:1376万
展开全部
既然限制了不改动SQL这些,那我就直接写最后else里面的代码了,前面就不复制了:
else
{
DataTable dt = ds.Tables["TestData"].Clone(); //复制表结构
foreach(DataRow dr in ds.Tables["TestData"].Rows) //遍历源表
if(dr[0].ToString()==textBox1.Text.Trim()&&dr[3].ToString()==textBox2.Text.Trim())
dt.ImportDataRow(dr); //添加符合条件的行
dataGridView1.DataSource=dt.DefaultView;
}
基本就是这样,希望对你有帮助,有疑问请追问或是Hi
追问

追答
能够从控件中删除只是说明你的Rows.Remove()这一句代码成功执行了,数据库中的记录没有删除掉那就是SQL语句有问题,看了下你上面的代码,有几个建议:
1、没有必要用DataSet,你操作的就是一张表,DataTable就好了,省得写那么麻烦;
2、既然是删除选中行,那就不要用CurrentCell什么的,直接取SelectedRows中对应列的值;
3、因为不知道你的商品条码是第几列,示例代码就不写了,你先试一下,有问题再提出来就好,希望以上建议能对你有帮助
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式