永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-02-19 01:17
我现在可以将数据库整个导入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的查询功能,谢谢!!!!
回答的好会再追加分数!!!
最佳答案
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、因为不知道你的商品条码是第几列,示例代码就不写了,你先试一下,有问题再提出来就好,希望以上建议能对你有帮助
全部回答
//首先引入 using system.data; using system.data.oledb; oledbconnection con = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=f:\tem\green_for_test.mdb"); //然后实例化数据库连接对象,其中data source=后面是你access数据库的路径 oledbdataadapter adapter = new oledbdataadapter("select * from access_database", con); //要查询的话就实例化oledbdataadapter对象,里面两个参数分别是你的sql语句,上面实例化的数据库连接对象con,oledbdataadapter对象会自动管理连接对象的关闭 datatable table = new datatable(); //然后定义datatable对象,用于存放查询结果 adapter.fill(table); //通过adapter 对象的fill方法执行查询,同时将结果放入table中 datagridview.datasource = table; //然后就是将table绑定到datagridview中 //完成,希望能帮到你
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
根据你的积累写出两句律所熟知的关于诚信的名
乐客超市地址有知道的么?有点事想过去
眉毛太浓怎么办
请问广东省的中山市有比较出名的寺庙吗?
对伍我想知道这个在什么地方
重装xp系统使用U大侠U盘插入显示no menu怎么
黑篮和k的混合型耽美小说
(○+□)乘以0.3=4.2,而且□除以0.4=12,那么
鑫星汽车租赁我想知道这个在什么地方
to the point 的用法
levi's尺码问题~~~
不法商将含“伪蛋白氮”较高的三聚氰胺掺入奶
工资卡怎么绑定手机号
时尚风牛仔隆安店在什么地方啊,我要过去处理
淘宝已经上架的商品怎么批量改标题?
推荐资讯
给出这些单词的形容词:头发 直的 高度 高的
2g氢气所含的原子数目为多少,
中国移动祥佳手机专营在什么地方啊,我要过去
怎样找回qq中我的电脑里的文件一段视频被删掉
和别人打架,过了5天他去了派出所报案,当事
汉白玉石雕十八罗汉挂件放在家里好不好?
海之恋国际旅游圣地?内地全国首座人造海洋旅
巴弟鸡排(西乡店)地址在什么地方,想过去办事
华东师范大学研究生6号报道,5号可以住学生宿
车辆事故双方未调节好交警有权放车吗,
红军不怕远征难 万水千山只等闲。中万水指啥?
三联家电夏津店地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?