注册 登录
编程论坛 VB.NET论坛

[分享] vb.net做的一套简单的图书管理系统原代码!适合菜鸟学习用

Viviwei 发布于 2006-04-25 13:49, 34834 次点击


使用需知


因为时间仓促,所以没全面的去完成其中间所有功能。
数据库也不是很完善,因为鉴于菜鸟的学习,没用用类去处理相关的数据库连接。请见谅!
此系统仅用于菜鸟的学习。使用时请先附加数据库。
用于参考者请用vb.net将源程序打开后观看,实现了基本的添加,修改,删除.首记录,上记录.下记录,尾记录,以及图书的借阅,图书的查询.
如果是从网络上下载后得到的请在论坛给我留言或者QQ:85474440联系我给我好的建议。
如有需求要完整的系统者(经规范的编写),请联系本人。
谢谢您的使用

更改后的系统给大家下载参考.请需要者QQ联系我,加好友时注明是编程论坛的成员!~

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2006-5-16 8:30:42编辑过]

118 回复
#2
wugong2006-04-26 14:18

什么是闪窗?

#3
Viviwei2006-04-27 18:08

就是在进入系统前的一个临时窗体!~
关键在于给用户一个提示信息!~表示正在进入 系统
我靠,这么多人下了怎么都不回贴啊!~

#4
Viviwei2006-04-27 19:37
闪窗的问题已经解决,大家想看的请去看
#5
regedit2006-04-28 00:03
dim flashform as new flashform '显示加载信息的窗体
application.run(flashform)
dim Mainform as new Mainform  '主窗体
application.run(Mainform)
#6
Viviwei2006-04-28 09:06
谢谢回答,我去试试这个方法看
#7
Viviwei2006-04-28 09:12
好象不可以也,能无限的循环了
#8
Viviwei2006-04-28 09:13
Dim int As Integer = 0
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
dim frm as new from2
If int = 0 Then
Me.Visible = True
frm.Visible = False
int = 1
ElseIf int = 1 Then
Me.Visible = False
frm.Visible = Ture
int = 2
End If
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
Me.Timer1.Enabled = True
Me.Timer1.Interval = 1000 '时间间隔自定义
End Sub
这个可以,成功使用了

#9
regedit2006-04-28 22:50
呵呵~2秒后加载...
#10
sanitspare2006-04-30 23:19
其实这个加载信息窗口只不过是因为主程序启动缓慢,为了让用户感觉不到这一点而故意设置的,这个窗体做的小一点,先show(),然后主窗体show(),信息窗体close()就可以了,好像是哪本书上看到过的,忘了
#11
蓝冰小猫2006-05-09 09:22

呵呵,谢谢你哦,找的好辛苦哦。
做的真好,非常感谢!

#12
dachouyu2006-05-09 11:02
里面没东西的嘛.
#13
Viviwei2006-05-09 13:54

当然,全都有的话我还叫给你们借鉴,不就是抄袭了?

#14
Viviwei2006-05-13 12:34
经过本人一个星期的努力,经过一系列的更改后,一套适合菜鸟学习的图书管理系统终于完成了,里面不包含类的调用,每个页面都包含数据库的连接,我认为很利于新手的刚刚认识时的学习..
#15
pennyong2006-05-13 13:38

谢谢 给我的数据库

#16
wjh_362006-05-16 09:33

我作了一个和你的功能查不多的程序,但出了很多错误,修改记录时,无出现错误,但数据库里的记录不变,代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn As New SqlConnection
conn.ConnectionString = ConfigurationSettings.AppSettings("aa")
conn.Open()
Dim cmd As New SqlCommand
cmd.Connection = conn
cmd.CommandText = "update info set u_name='" & TextBox1.Text & "',u_sex='" & TextBox2.Text & "',u_birt='" & TextBox3.Text & "',u_indate='" & TextBox4.Text & "',u_code='" & TextBox5.Text & "',u_tel='" & TextBox6.Text & "',u_zhy='" & TextBox7.Text & "',u_dw='" & TextBox8.Text & "',u_time1='" & TextBox9.Text & "',u_sch1='" & TextBox10.Text & "',u_zhy1='" & TextBox11.Text & "',u_time2='" & TextBox12.Text & "',u_sch2='" & TextBox13.Text & "',u_zhy2='" & TextBox14.Text & "',u_time3='" & TextBox15.Text & "',u_sch3='" & TextBox16.Text & "',u_zhy3='" & TextBox17.Text & "',u_chg='" & TextBox18.Text & "',u_ky='" & TextBox19.Text & "',u_xsh='" & TextBox20.Text & "',u_xzhw1='" & TextBox21.Text & "',u_xdate1='" & TextBox22.Text & "',u_xmch1='" & TextBox23.Text & "',u_xzhw2='" & TextBox24.Text & "',u_xdate2='" & TextBox25.Text & "',u_xmch2='" & TextBox26.Text & "',u_xzhw3='" & TextBox27.Text & "',u_xdate3='" & TextBox28.Text & "',u_xmch3='" & TextBox29.Text & "',u_shzhw1='" & TextBox30.Text & "',u_shdate1='" & TextBox31.Text & "',u_shmch1='" & TextBox32.Text & "',u_shzhw2='" & TextBox33.Text & "',u_shdate2='" & TextBox34.Text & "',u_shmch2='" & TextBox35.Text & "',u_shzhw3='" & TextBox36.Text & "',u_shdate3='" & TextBox37.Text & "',u_shmch3='" & TextBox38.Text & "',u_men='" & TextBox39.Text & "' where u_id='" & TextBox40.Text & "'"

cmd.ExecuteNonQuery()
conn.Close()
End Sub

#17
wjh_362006-05-16 09:42

我做了一个和你功能查不多的程序,但修改记录时,运行时页面没有什么错误,但数据库里的记录就不变这是怎么回事啊,代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn As New SqlConnection
conn.ConnectionString = ConfigurationSettings.AppSettings("aa")
conn.Open()
Dim cmd As New SqlCommand
cmd.Connection = conn

cmd.CommandText = "update info set u_name='" & TextBox1.Text & "',u_sex='" & TextBox2.Text & "',u_birt='" & TextBox3.Text & "',u_indate='" & TextBox4.Text & "',u_code='" & TextBox5.Text & "',u_tel='" & TextBox6.Text & "',u_zhy='" & TextBox7.Text & "',u_dw='" & TextBox8.Text & "',u_time1='" & TextBox9.Text & "',u_sch1='" & TextBox10.Text & "',u_zhy1='" & TextBox11.Text & "',u_time2='" & TextBox12.Text & "',u_sch2='" & TextBox13.Text & "',u_zhy2='" & TextBox14.Text & "',u_time3='" & TextBox15.Text & "',u_sch3='" & TextBox16.Text & "',u_zhy3='" & TextBox17.Text & "',u_chg='" & TextBox18.Text & "',u_ky='" & TextBox19.Text & "',u_xsh='" & TextBox20.Text & "',u_xzhw1='" & TextBox21.Text & "',u_xdate1='" & TextBox22.Text & "',u_xmch1='" & TextBox23.Text & "',u_xzhw2='" & TextBox24.Text & "',u_xdate2='" & TextBox25.Text & "',u_xmch2='" & TextBox26.Text & "',u_xzhw3='" & TextBox27.Text & "',u_xdate3='" & TextBox28.Text & "',u_xmch3='" & TextBox29.Text & "',u_shzhw1='" & TextBox30.Text & "',u_shdate1='" & TextBox31.Text & "',u_shmch1='" & TextBox32.Text & "',u_shzhw2='" & TextBox33.Text & "',u_shdate2='" & TextBox34.Text & "',u_shmch2='" & TextBox35.Text & "',u_shzhw3='" & TextBox36.Text & "',u_shdate3='" & TextBox37.Text & "',u_shmch3='" & TextBox38.Text & "',u_men='" & TextBox39.Text & "' where u_id='" & TextBox40.Text & "'"

cmd.ExecuteNonQuery()
conn.Close()
End Sub

#18
wjh_362006-05-16 09:46
还有一个问题就是如下:
[求助]未将对象引用设置到对象的实例

Dim conn As New SqlConnection
conn.ConnectionString = ConfigurationSettings.AppSettings("aa")
Dim cmd As New SqlCommand

cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_id='" & TextBox1.Text & "'"
cmd.Connection = conn
conn.Open()
Dim dr As New SqlDataAdapter
Dim ds As New DataSet
dr.Fill(ds, "info")
DataGrid1.DataSource = ds.Tables("info")
DataGrid1.DataBind()
conn.Close()




出现错误如下:

“/dn”应用程序中的服务器错误。

未将对象引用设置到对象的实例。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

行 42: 
行 43: cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_id='" & TextBox1.Text & "'" 行 44: cmd.Connection = conn 行 45: conn.Open()
行 46: Dim dr As New SqlDataAdapter

源文件: c:\inetpub\wwwroot\dn\cbh.aspx.vb 行: 44

堆栈跟踪:

[NullReferenceException: 未将对象引用设置到对象的实例。]
dn.chaxun.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\dn\cbh.aspx.vb:44
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()

#19
wjh_362006-05-16 10:15
如果在里面添加打印代码,该怎么写啊
#20
Viviwei2006-05-16 13:00
以下是引用wjh_36在2006-5-16 9:46:00的发言:
还有一个问题就是如下:
[求助]未将对象引用设置到对象的实例

Dim conn As New SqlConnection
conn.ConnectionString = ConfigurationSettings.AppSettings("aa")
Dim cmd As New SqlCommand

cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_id='" & TextBox1.Text & "'"
cmd.Connection = conn
conn.Open()
Dim dr As New SqlDataAdapter
Dim ds As New DataSet
dr.Fill(ds, "info")
DataGrid1.DataSource = ds.Tables("info")
DataGrid1.DataBind()
conn.Close()




出现错误如下:

“/dn”应用程序中的服务器错误。

未将对象引用设置到对象的实例。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

行 42: 
行 43: cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_id='" & TextBox1.Text & "'"
行 44: cmd.Connection = conn
行 45: conn.Open()
行 46: Dim dr As New SqlDataAdapter

源文件: c:\inetpub\wwwroot\dn\cbh.aspx.vb 行: 44

堆栈跟踪:

[NullReferenceException: 未将对象引用设置到对象的实例。]
dn.chaxun.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\dn\cbh.aspx.vb:44
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()

试试将程序代码改为下面的:
Dim dr As New SqlDataAdapter
Dim ds As New DataSet
conn.Open()
cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_id='" & TextBox1.Text & "'"
cmd.Connection = conn
cmd.CommandType = CommandType.Text
dr.SelectCommand = comm
dr.Fill(ds, "info")
DataGrid1.DataSource = ds.Tables("info")
DataGrid1.DataBind()
conn.Close()

#21
Viviwei2006-05-16 13:02

另外你的修改记录的代码建议你仔细的检查sql语句
可以先在sql查询分析器里检查是否能修改.

#22
Viviwei2006-05-16 13:04

打印是一个空间,你只需要添加窗体就可以了.然后添加控件,再去调用这个窗口

#23
wjh_362006-05-16 14:00


我试试

#24
wjh_362006-05-16 14:20
好拉
#25
wjh_362006-05-16 14:23

嘿嘿

麻烦帮我看看那个问题啊

就是不能改数据库里记录的那个

#26
wjh_362006-05-16 15:23

在一个TEXTBOX1.TEXT中输入日期以后通过查询在DATAGRID中显示,可我的怎么显示不出来啊



Dim conn As New SqlConnection
conn.ConnectionString = ConfigurationSettings.AppSettings("aa")
Dim cmd As New SqlCommand
Dim dr As New SqlDataAdapter
Dim ds As New DataSet

conn.Open()
cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_indate='" & TextBox1.Text & "'"
cmd.Connection = conn
cmd.CommandType = CommandType.Text
dr.SelectCommand = cmd
dr.Fill(ds, "info")
DataGrid1.DataSource = ds.Tables("info")
DataGrid1.DataBind()
conn.Close()

#27
炫舞鱼2006-05-16 20:11
非常感谢~~
希望也有我会的能贡献大家
#28
Viviwei2006-05-16 21:20
查询后属于重新显示在datagrid控件上.
请在事件的最前方加入对上次查询结果的清空
例如:我输入日期在textbox1.text中,按buttoon1查询,结果显示在datagrid中
代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ds.Clear()
If conn.State = ConnectionState.Closed Then
conn.Open()
End If
cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_indate='" & TextBox1.Text & "'"
cmd.Connection = conn
cmd.CommandType = CommandType.Text
dr.SelectCommand = cmd
dr.Fill(ds, "info")
DataGrid1.DataSource = ds.Tables("info")
DataGrid1.DataBind()
If conn.State = ConnectionState.Open Then
conn.Close()
End If
end sub

[此贴子已经被作者于2006-5-16 21:28:54编辑过]

#29
Viviwei2006-05-16 21:22
关于你记录修改的原代码,实在是不好检查,毕竟我没有你的数据库,而你的错误多半的可能属于内部错误,
还是建议你好好检查sql语句是否有错误!!!`
#30
wjh_362006-05-17 10:31

好,谢谢啦

#31
wjh_362006-05-17 10:43
不行啊,是不是要把textbox1.text的值转换成日期啊
cmd.CommandText = "select u_id as 编号,u_name as 姓名,u_sex as 性别,u_indate as 入学时间,u_zhy as 所学专业,u_dw as 所在单位 from info where u_indate='" & TextBox1.Text & "'"
因为在数据库中u_indate的属性是datatime
但我不知道转换的函数是什么
#32
Viviwei2006-05-17 12:33

如果是时间的传递,建议加入DateTimePicker控件,这样好进行转换点.在时间的输入上也方便点
具体代码如下:(必须加入DateTimePicker控件,该值是DateTimePicker的选择结果)
& DateTimePicker1.Value.Date &
这样就没错了

#33
wjh_362006-05-18 09:26
我建的项目是“ WEB应用程序”,在“web窗口”中没有DateTimePicker这个控件,我在“Windows 窗口”中找到了DateTimePicker这个控件,但不可用,添加那个控件时,它前面已经是选中的,也就是已经添加过的,是不是在“ WEB应用程序”不能用DateTimePicker这个控件啊
#34
bobking2006-05-18 18:10
楼主你好啊 能不能为我现在做的视频点播系统解答一些问题呀?!
https://www.bc-cn.net/bbs/dispbbs.asp?boardID=114&ID=64977&page=1
#35
yuanxc_12122006-05-18 23:33

楼主,你好:
有个问题帮我解决下,谢谢了

我想用TREEVIEW做一个二层的树形菜单,就如CSDN本论坛的导行栏一样,但结点随时更新,只能从数据库里分类加载,下面是我加载根结点的代码,运行成功!
但不知怎么分类加载子结点?


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dtr As System.Data.OleDb.OleDbDataReader
Dim cmd As System.Data.OleDb.OleDbCommand


TreeView1.Nodes.Clear()
cmd = New OleDb.OleDbCommand("select * from title", OleDbConnection1)

OleDbConnection1.Open()
dtr = cmd.ExecuteReader()
Dim n As Integer
While dtr.Read()

If dtr.GetBoolean(2) = True Then
TreeView1.Nodes.Add(New TreeNode(dtr.GetString(1)))
End If
End While

dtr.Close()
OleDbDataAdapter1.Fill(DataSet11)
OleDbConnection1.Close()
End Sub

#36
Viviwei2006-05-19 07:33
你只要将分类子节点的数据用数据库中你要填充的行进行填充就可以了,我在自己机子上面用sqlserver 2000的已有的数据库试了一下,能成功
你自己稍加修改应该就可以完成.(请原谅没时间去重做一个access的数据库)
Dim i As Integer
Dim str As String
str = "select * from department" '查询该表中的所有行,注意,该表只有一行,如果有多行,只能查询一行
If conn.State = ConnectionState.Closed Then
conn.Open()
End If
comm.Connection = conn
comm.CommandType = CommandType.Text
comm.CommandText = str
da.SelectCommand = comm
da.Fill(ds, "department") '填充表
For i = 0 To ds.Tables("department").Rows.Count - 1
Me.TreeView1.Nodes(0).Nodes.Add(ds.Tables("department").Rows(i).Item(1)) '将查询的结果显示在treeview控件的子接点上面!~
Next
#37
Viviwei2006-05-19 07:35
以下是引用wjh_36在2006-5-18 9:26:00的发言:
我建的项目是“ASP.NET WEB应用程序”,在“web窗口”中没有DateTimePicker这个控件,我在“Windows 窗口”中找到了DateTimePicker这个控件,但不可用,添加那个控件时,它前面已经是选中的,也就是已经添加过的,是不是在“ASP.NET WEB应用程序”不能用DateTimePicker这个控件啊

asp.net的模块应该有人能回答这个问题,我对asp.net了解不是很深!~请谅解!

#38
wjh_362006-05-19 09:01
嘿嘿
没关系
#39
sbudyu2006-05-19 23:56

不错

#40
白小痴2006-05-20 19:24
我就是借鉴的这个系统做的我的毕业设计,绝对是个好东西。
要是改成只进行一次数据库连接就更好了
#41
yuanxc_12122006-05-20 22:38

楼主,你好,谢谢你的解答,但是你误解了我的意思,也许是我没有说清楚吧!
我的根结点和子结点的值都在一个表中,并且根结点和子结点都可以随意的动态增加,
数据库结构如:
node_id node_name node_per node_child node_sort
node_per和node_child是布尔值,可以判断是否是根结点或子结点
如果是子结点可以通过node_sort(指定根结点的名称)字段来分类过滤
表的记录是动态的增加的,根结点也可能增加,每次启动窗体要子结点都要分类加载

#42
Viviwei2006-05-22 06:57
Private Sub frmDepManage_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim db As DataBase = New DataBase
Dim strSQL As String
strSQL = "select * from 组织机构编码表 order by absIndex"
dvList = db.RunSelectSQL(strSQL)
db.Dispose()
'初始化TreeView控件的各个节点
InitTree(trvList.Nodes, "-1")
End Sub
'InitTree是用递归方法初始化TreeView控件的节点
Private Sub InitTree(ByRef nodes As TreeNodeCollection, _
ByVal sParentIndex As String)
Try
Dim tmpNode As TreeNode
Dim absIndex As String
Dim dvTemp As DataView = dvList.Table.DefaultView
'选出数据源中ParentIndex为sParentIndex数据行
Dim dataRows() As DataRow = _
dvList.Table.Select("ParentIndex = '" + sParentIndex + "'")
'循环添加TreeNode
For Each dr As DataRow In dataRows
'获得节点所需数据
tmpNode = New TreeNode
tmpNode.Text = dr("类别")
'用TreeNode的Tag属性保存与此节点相关的数据
tmpNode.Tag = CType(New TreeNodeData(dr("AbsIndex"), _
dr("ItemIndex"), dr("ItemLevel"), _
dr("ParentIndex"), dr("类别号"), dr("单位编号")), Object)
absIndex = dr("AbsIndex")
'添加节点
nodes.Add(tmpNode)
'递归调用
InitTree(nodes(nodes.Count - 1).Nodes, absIndex)
Next
Catch ex As Exception
MessageBox.Show("初始化TreeView失败")
End Try
End Sub
这个方法可以子接点和根接点都用数据库里来调用!~你是这个意思吗?关键在于表的关系 要做好
#43
无奈沉沦2006-05-23 16:17
我还没学到数据库的连接,所以很多问题还解决不了,不过依然感谢你的程序
我会好好利用的
#44
的的2006-05-24 16:22
楼主,我下了你的东东,可是里面的数据库表怎么打不开啊,
另外我调试图书管理系统时也老是出错,我这个菜鸟又不知道自己哪里没弄好,
#45
rowater2006-05-25 10:15

很棒,我以后有问题也向你请教,能帮我吗?

我下了你的图书管理系统,登录不了,请给我数据库吧,谢谢。

#46
Viviwei2006-05-26 13:07

大家使用前务必先附加.mdf的数据库文件.另外,数据库是sql2000的.没安装sql2000server的都不能使用系统,请安装后使用
不然无法登陆就是很正常的现象@!!~~

#47
starfamily2006-05-29 13:23
支持!!我刚好要做这个程序。。
#48
zsxzsw2006-05-29 15:45

非常感谢~!
正在研究中
暂无问题~!

#49
dfadsf2006-05-30 22:30
版主
“先附加.mdf的数据库文件”
怎么做啊???
谢了先
#50
BHaiHSha2006-05-31 17:26

呵呵,谢谢,版主,偶带走了一份

#51
linpei232006-05-31 21:57
谢谢你提供这些内容,可供我们来参考 
123