| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1955 人关注过本帖
标题:求助:关于vb与sql 建立一个简单的学生管理系统 调试遇到的各种问题
只看楼主 加入收藏
keejo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-3-28
收藏
 问题点数:0 回复次数:12 
求助:关于vb与sql 建立一个简单的学生管理系统 调试遇到的各种问题

程序代码:

Public m As String
Public i As String
Dim txtsql As String
Dim conn As New ADODB.Connection
Dim mrc As New ADODB.Recordset
Public n As Integer
Public Function exesql(ByVal sql As String) As ADODB.Recordset
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
sql = Trim$(sql)
sql = "select * from wgbf"
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
conn.ConnectionString = "Provider=SQLOLEDB.1; Password=sa;User ID=sa; Initial Catalog=pubs; Data Source=127.0.0.1"
conn.Open
Set rst.ActiveConnection = conn
rst.LockType = adLockOptimistic
rst.CursorType = adOpenKeyset
rst.Open sql     试调错误指在这里
Set exesql = rst
Set rst = Nothing
Set conn = Nothing
End Function

调试的时候 他说 实时错误’-2147217865 (80040e37)‘对象名'wgbf'无效
我一直都找不到 wgbf在哪。。。。
郁闷。。。

快期末了这是数据库老师布置的作业,用vb跟sql做一个简单的数据库系统。
小弟我vb没学过,弄了一天把代码差不多弄完了,调试总出问题。。。
大侠快来帮帮我吧。

[ 本帖最后由 keejo 于 2010-6-6 13:14 编辑 ]
搜索更多相关主题的帖子: sql 系统 学生 调试 
2010-06-06 01:45
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
sql = "select * from wgbf"
rst.Open sql     试调错误指在这里
 实时错误’-2147217865 (80040e37)‘对象名'wgbf'无效

sqlserver中没有名为wgbf的表。——打开sqlserver看看

奇怪的是,这个FUNCTION函数中sql是作为参数进行传递的,但为啥你又在此过程中为sql重新赋值呢

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-06-06 08:15
keejo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-3-28
收藏
得分:0 
回复 2楼 不说也罢
感谢大侠这么早就回复了。。。 我查了查书,把代码又改了下
程序代码:
Public Function exesql(ByVal sql As String) As ADODB.Recordset
sql = Trim$(sql)
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
conn.ConnectionString = "Provider=SQLOLEDB.1;Password=sa;User ID=sa; Initial Catalog=StuData;Data Source = 127.0.0.1"
conn.Open    错误在这了
Set rst.ActiveConnection = conn
rst.LockType = adLockOptimistic
rst.CursorType = adOpenKeyset
rst.Open sql
Set exesql = rst
Set rst = Nothing
Set conn = Nothing
End Function
这回是说实时错误‘-2147467259 (80004005)
无法打开登陆’StuData'中请求数据。登陆失败。
 这是代码问题还是sql的问题呢?  sql设置了用户sa
能用了。  跪求真相啊!!
2010-06-06 10:37
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
Data Source = 127.0.0.1
换成 Data Source =.
或者换成 Data Source =(local)
试试

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-06-06 10:43
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-06-06 10:49
keejo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-3-28
收藏
得分:0 
回复 5楼 不说也罢
感谢楼上!!
现在又出了个新的问题。
程序代码:
Private Sub Command1_Click()
  Dim searchfield As String
  Dim sortfield As String
    If Trim(Text1.Text) = "" Then
      MsgBox "请输入检索词"
      Exit Sub
    End If
    If Combo1.Text = "学号" Then searchfield = "st_id"
    If Combo1.Text = "姓名" Then searchfield = "st_name"
    If Combo1.Text = "性别" Then searchfield = "st_sex"
    If Combo1.Text = "年龄" Then searchfield = "st_age"
    If Combo1.Text = "班级" Then searchfield = "st_class"
    If Combo1.Text = "学院" Then searchfield = "st_dep"
    If Combo2.Text = "学号" Then sortfield = "st_id"
    If Combo2.Text = "姓名" Then sortfield = "st_name"
    If Combo2.Text = "性别" Then sortfield = "st_sex"
    If Combo2.Text = "年龄" Then sortfield = "st_age"
    If Combo2.Text = "班级" Then sortfield = "st_class"
    If Combo2.Text = "学院" Then sortfield = "st_dep"
     Adodc1.RecordSource = " select * from studentinfo where " & searchfield & " like '% " & Text1.Text & " %' order by" & sortfield
     Adodc1.Refresh    错误说在这
End Sub
小弟在网上搜了很久都没找到解决办法,
提示说是: 实时错误‘-2147217900 (80040e14)' :
’byst_id' 附近有语法错误。
上面那条  Adodc1.RecordSource = " select * from studentinfo where " & searchfield & " like '% " & Text1.Text & " %' order by" & sortfield
我直接在sql运行了没问题啊。。。


[ 本帖最后由 keejo 于 2010-6-6 12:22 编辑 ]
2010-06-06 12:14
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
你说在SQL运行中没问题
是这样的话,就要查看ADODC1的connectstring commandtype 属性了

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-06-06 12:22
keejo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-3-28
收藏
得分:0 
回复 7楼 不说也罢
原来是上面那句Adodc1.RecordSource = " select * from studentinfo where " & searchfield & " like '% " & Text1.Text & " %' order by " & sortfield
中by后面少了个空格。
现在这个查询调试是没问题了
查询后DataGrid1的行数是有变化的
可是 DATAGRID1 里的表格内容怎么显示不出来,还是空的呢?
DataGrid1 的DataSource 已经设置为 Adodc1 了。
2010-06-06 12:32
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
DataGrid1   refresh

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-06-06 12:39
keejo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-3-28
收藏
得分:0 
回复 9楼 不说也罢
是直接加在 adodc1.refresh 后面是把?
加了之后效果是一样的诶
数据库里的内容只有一行,
为查询前 DataGrid1有两行的,查询之后变成一行了,表格内容还是空诶。。
2010-06-06 12:45
快速回复:求助:关于vb与sql 建立一个简单的学生管理系统 调试遇到的各种问题
数据加载中...
 
   



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

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