别cpu我 2021-10-27 15:05 采纳率: 66.7%
浏览 84
已结题

c#操作access查询更改简单问题请教

img

img


如图access数据库表1表2,我想实现查询“Xid”在表2出现的次数以更改表1中对应的字段“出现次数”,现在的想法是将表1数据存在Datatable中(dt),遍历dt,查询字段Xid在表2出现的次数count,同时将count去update道表1中,代码实现写到了这里,请教一下接下来如何实现存count啊


  private void Button_Click(object sender, RoutedEventArgs e)
        {
            string path = "D:\\data";
            string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + "\\test.mdb";

            OleDbConnection conn = new OleDbConnection(strConnect);
        
            //OleDbCommand cmd = new OleDbCommand("select * from 表2", conn);
            OleDbCommand acmd = new OleDbCommand("select * from 表1", conn);
            conn.Open();
            OleDbDataAdapter da = new OleDbDataAdapter(acmd);
            OleDbCommandBuilder odb = new OleDbCommandBuilder(da);
            odb.QuotePrefix = "[";
            odb.QuotePrefix = "]";
            DataSet ads = new DataSet();
            da.Fill(ads,"表1");
            DataTable dt = ads.Tables["表1"];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string str = "select count(*) as count from 表2 where Xid =" + dt.Rows[i]["Xid"].ToString();
                OleDbCommand c = new OleDbCommand(str, conn);
            }
            conn.Close();
        }
  • 写回答

1条回答 默认 最新

  • bekote 2021-10-27 15:32
    关注
    
    update1 set 出现次数 = (case when cnt is null then 0 else cnt end) from1 a left join (select Xid, count(1) as cnt from2 group by Xid) b on a.Xid = b.Xid
    

    不用那么麻烦,执行这1个sql语句就可以啦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月28日
  • 修改了问题 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备