以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  菜鸟问SQL外部数据,快速录入与统计  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=32522)

--  作者:riancel
--  发布时间:2013/5/3 15:14:00
--  菜鸟问SQL外部数据,快速录入与统计

想在学号列变化的时候,在收费列自动汇总出该学号所缴纳的学费之和。
文件见附件。
数据库结构。表:Xstudent

                        Sid             StudentName

                       201300001   朱世勇

                       201300002   张利

                  表:XTaskWorkMX

                       DOMoney     Sid

                       2000           201300001

                       800             201300002

                       1800           201300001

                       1000           201300002

详见附件!

 

这个是根据自带的学习文件,做出的,输入学号,自动从数据库找出姓名。

If e.DataCol.Name = "学号" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {Xstudent} Where [Sid] = \'" & dr("学号") & "\'"   
    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("姓名") = dt.DataRows(0)("StudentName")
    Else
        dr("姓名") = Nothing
    End If
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目22.zip


--  作者:Bin
--  发布时间:2013/5/3 15:35:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目22.zip


--  作者:riancel
--  发布时间:2013/5/3 16:02:00
--  
谢谢哦
--  作者:riancel
--  发布时间:2013/5/3 16:15:00
--  

提示错误:标准表达式中数据类型不匹配。

得不出数啊

可不可以改下附件哦!老大

[此贴子已经被作者于2013-5-3 16:17:06编辑过]

--  作者:Bin
--  发布时间:2013/5/3 16:18:00
--  
以下是引用riancel在2013-5-3 16:15:00的发言:

提示错误:标准表达式中数据类型不匹配。

得不出数啊

[此贴子已经被作者于2013-5-3 16:16:19编辑过]

我的经过测试是不会有问题的.MUHUA的.你把SID拼接学号的单引号去掉
--  作者:Bin
--  发布时间:2013/5/3 16:19:00
--  
另外我也更改了你数据库里的表的数据类型,你原本的DOMONEY是字符类型 肯定是无法统计的,会报错的. 改为高精度小说或者整数吧
--  作者:riancel
--  发布时间:2013/5/5 8:40:00
--  

弄通了,可以查询了到了。
但是又出了另外一个问题:

单位用的SQL收费管理软件在建立人员档案时候支持从excel导入数据

有一个字段(字段名“Sid”)是一串为纯数字的字符

在excel导入模板中,操作员未将Sid这个字段设为文本,被保持了“常规”类型。

(从系统导出excel数据时就会发现这些“常规”的字符会被认为是数字)

导致在导入系统后,用收费管理软件一切正常。
但是在foxtable做外部数据源查询时会出错,查不出来相关信息,

If e.DataCol.Name = "学号" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {Xstudent} Where [Sid]= \'" & dr("学号") & "\'"   
    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("姓名") = dt.DataRows(0)("StudentName")
    Else
        dr("姓名") = Nothing
    End If
End If

能不能用字段类型的转换来解决这个问题呢?


图片点击可在新窗口打开查看此主题相关图片如下:未命名111.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-5-5 8:41:14编辑过]