| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 323 人关注过本帖
标题:大神帮忙看看异常报错啊
只看楼主 收藏
svip9527
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-8-9
结帖率:0
  已结贴   问题点数:20  回复次数:6   
大神帮忙看看异常报错啊


我就是在图三列表里面编辑,点击保存到数据库同时列表也更新,但为什么会报图一得异常啊,我用的是dataapdpter对象的update方法去执行commandbuilder里面的命令自动生成的,我做第一个窗体增删改查查询,这样做没问题,可是第二个窗体换了个表,在同一个access数据库,为什么出现这个问题啊,真是搞不懂了
附件: 您没有浏览附件的权限,请 登录注册
2017-08-16 20:56
lhj56459897
Rank: 2
等 级:论坛游民
帖 子:17
专家分:47
注 册:2017-7-8
  得分:20 
        Dim result(10)‘有n列定义n-1个,从0开始的
        dim STRstr as String=DataGridView1.Item(2, DataGridView1.CurrentCell.RowIndex).Value.ToString.Trim'将关键值字段值给全局变量,这里我将产品编号做为关键字段
        dim i as integer
        for i=0 to n-1 'n是多少列
         result(i) = DataGridView1.Item(i, DataGridView1.CurrentCell.RowIndex).Value.ToString.Trim
        next
        Dim updatastr As String = "update 卓艺标准工时 set "  'set 后留一空格
        if result(0)<>"" then
              updatastr=updatastr &  "序号='" & result(0) & "',"
        else
              updatastr=updatastr &  "序号='',"          '如果不设此值,更新时会出错
        endif
        if result(1)<>"" then
              updatastr=updatastr &  "产品编号='" & result(1) & "',"
        else
              updatastr=updatastr &  "产品编号='',"
        endif
...........................最后一项后面不要加逗号
        updataStr = updataStr & " where 产品编号='" & STRstr "'"    ’where 前留一空格
        cn.Open()
        Dim da As New oledbommand(updataStr, cn)
        da.CommandType = CommandType.Text
       da.ExecuteNonQuery()
此方法比较笨,应该有更好的办法,不过能实现你要的结果。。。。
2017-08-17 08:28
svip9527
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-8-9
  得分:0 
回复 2楼 lhj56459897
我第一个form窗体,就直接用的commandBuilder对象啊,没有任何问题啊,为什么第二个窗体就这样啊
2017-08-17 09:24
lhj56459897
Rank: 2
等 级:论坛游民
帖 子:17
专家分:47
注 册:2017-7-8
  得分:0 
我试验了一下,如果用SQl语句和数据库的话,可以把dt定义成dataset,你的这些语句完全成立。
在这个程序里你把dim cb as new oledbcommandbuilder(da)放在button2_click事件里
因为更新以后要重新构造,你放在上面直接构造了,再改是以后的了
dim cb as new oledbcommandbuilder(da)
da.update(dt)
msgbox("更新成功")
2017-08-17 21:22
svip9527
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-8-9
  得分:0 
回复 4楼 lhj56459897
其实是我数据库的问题,因为不能对access查询设计后的表直接查询,你知道怎么对access数据库表实现计算功能吗
2017-08-18 08:09
lhj56459897
Rank: 2
等 级:论坛游民
帖 子:17
专家分:47
注 册:2017-7-8
  得分:0 
统计记录
Dim Ston As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\vb1\KScount.mdb;Persist Security Info=False"
        Dim myConn As New OleDbConnection(Ston)
        myConn.Open()
        Dim Strcom As String = "select * from Tcount"
        Dim myComd As New OleDb.OleDbDataAdapter(Strcom, myConn)
        Dim mydataset As New DataSet
        myComd.Fill(mydataset, "Tcount")
        Dim consum1 As Single
        Dim consum2 As Single
        If mydataset.Tables(0).Rows.Count > 0 Then
            Dim strcom1 As String = "select sum(val(西药费)),sum(val(中草药)) from Tcount"  '这两个字段是字符型的,要转换下
            Dim myCommand As New OleDb.OleDbCommand(strcom1, myConn)
            Dim rd As OleDbDataReader = myCommand.ExecuteReader
            Do While rd.Read
                Try
                    consum1 = rd.GetValue(0)
                    consum2 = rd.GetValue(1)
                Catch
                    MsgBox(Err.Description)
                End Try
            Loop
        End If
        myConn.Close()
        myComd.Dispose()
        TextBox24.Text = consum1
        TextBox25.Text = consum2

[此贴子已经被作者于2017-8-18 08:56编辑过]

2017-08-18 08:26
svip9527
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-8-9
  得分:0 
回复 6楼 lhj56459897
不是数据库聚合函数啊,聚合函数都是普通的查询计算啊,我就是excel哪些计算的,换成access里面啊,用日期类型减去整型得到一个日期类型啊怎么做到啊,excel都可以实现,但项目不需要excel做计算,在access里面计算,或者vb.net计算后把结果也存入数据库里
2017-08-18 09:39









关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058059 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved