在VB.NET中怎么写这个行大容量数据导入到SQL数据库的代码(每次导入的数据量都至少在10万条以上),请大侠帮忙

dreamice01 2008-06-17 10:44:42
WEB页面上一个文档选择对话框,一个导入按钮。由用户在本地计算机选择导入文档,点击按钮实现数据导入功能。

考虑到每次用户都是用一个EXCEL文档导入数据,每个EXCEL文档会有多个工作表,因此,想通过由用户一次选择文档,导入一个EXCEL文档的全部数据的功能。

但在以下代码中,无法实现这种功能,而如果把两个参数:文档名与工作表名全部固定,就可以顺利导入,请问,那个导入的STRING怎么写,怎么用连接字符把它们给连起来。

Private Sub dataimport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dataimport.Click

Dim strPath As String = File1.PostedFile.FileName ‘由用户选择所在的文件路径
Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & "; Extended Properties=Excel 8.0;"

Dim olecn As New OleDb.OleDbConnection

olecn.ConnectionString = sConnectionString

olecn.Open()
'Console.WriteLine("数据表已经连接上"),获取excel表

Dim tblname As DataTable = olecn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})

'获取sheet名,其中(0)(1)...(N): 按名称排列的表单元素

Dim k As Integer, l As Integer

Dim tablename As String = ""
Dim TABLEEXCEL As New DataSet

Dim table_name(tblname.Rows.Count - 1) As String

For k = 0 To tblname.Rows.Count - 1

tablename = tblname.Rows(k)(2).ToString().Trim

table_name(k) = "[" & tablename.Replace(" ' ", " ") & "]"

Dim sqlcn As SqlClient.SqlConnection = New SqlClient.SqlConnection("workstation id=WANGQIANG;packet size=4096;user id=sa;" & _
"password=120979120979;data source=WANGQIANG;persist security info=False;initial catalog=assessonline")
sqlcn.Open()

' Dim sqlstr As String = "EXEC master..xp_cmdshell 'bcp assessonline.dbo.basedist_end in c:\三张大表.xls -c -S wangqiang -U sa -P 120979120979'" ’用BCP工具,老提示说字符长度不够,不想改表结构,不用这条语句

Dim sqlstr As String = "insert into basedist_end(contract_id, contract_no, product_sort, client, saledepartment, consign_cost,consign_amount, kaohe_term, dist_type, contract_type)" & _
"SELECT contract_id, contract_no, product_sort, client, saledepartment, consign_cost,consign_amount, kaohe_term, dist_type, contract_type" & _
" FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=" & strPath &"', table_name(k))"

Dim sqlexport As SqlClient.SqlCommand = New SqlClient.SqlCommand(sqlstr, sqlcn)
sqlexport.ExecuteReader()
Next k
sqlcn.Close()

Response.Write(" <script> alert('恭喜,所有数据导入成功!') </script> ")



End Sub
...全文
509 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamice01 2008-07-02
  • 打赏
  • 举报
回复
多谢,我一会试一下
阿牛138588 2008-07-02
  • 打赏
  • 举报
回复
读取大数据请使用datareader
一次读入10万行,效率不理想之外,可能内存或者连接超进等情况是较正常的。但使用datareader可解决此类问题
oo渣渣oo 2008-06-25
  • 打赏
  • 举报
回复
以前写的一个简单文档,给你参考一下:
---------------------


如何实现带参数的DTS包的创建过程:

1.在DTS中创建1个全局变量:@FileName.

为便于调试,可以给变量赋一个默认值.

2、创建Text File (Source) 和SQL Server连接,并创建数据转换任务,设置好数据转换的对应关系.

这一步大家都知道,不用多说.

3.创建动态属性任务,
点击"添加"
打开树形表"连接"
选中输入的文件(Text Source)
在右边的列表中选择DataSource项,点击"设置"

4.选择源类型为"全局变量"

5.在变量处理选择定义好的变量"@FileName"

6.确定

7.动态属性设置好以后,在动态属性任务和Text Source之间建立一个"成功时"的工作流

8.保存DTS包即可.


现在即可在命令窗口中测试做好的DTS包:

dtsrun /s "99.170.8.32" /U "UserID" /P "PWD" /N "DTS_Name" /A "@FileName"="D:\ssmchdtap.del"



oo渣渣oo 2008-06-25
  • 打赏
  • 举报
回复
如果你的Excel文件格式是一样的,我倒是做过这种导入,给你提供一个思路:

我也是VS2003+SQL2000

1、在SQL上新建DTS包,这个DTS包是带参数的,参数就是文件名。
具体方法:在创建DTS包时选择“包属性”-“全局变量”,增加一个“@FileName”,类型是String,值可以给个初值,就是调试用的Excel文件的全路径。
2、建立DTS流程时用一个“动态属性任务”来描述@FileName全局变量
3、其他的数据库连接、数据表的导入转换这些就你自己搞了
4、在程序里用命令行方式引用DTS包就可以导入数据了。
生成命令行的示例:

strCmd = "dtsrun " & _
" /S " & ControlChars.Quote & _SQLName & ControlChars.Quote & _
" /U " & ControlChars.Quote & _SQLUser & ControlChars.Quote & _
" /P " & ControlChars.Quote & _SQLPass & ControlChars.Quote & _
" /N " & ControlChars.Quote & "Load_SSMCHDTAP" & ControlChars.Quote & _
" /A " & ControlChars.Quote & "@FileName" & ControlChars.Quote & _
"=" & ControlChars.Quote & strFile & ControlChars.Quote


_DtsCode = Shell(strCmd, AppWinStyle.NormalFocus, True)
If _DtsCode <> 0 Then _Err = "上载商户资料文件时失败."
cpp2017 2008-06-25
  • 打赏
  • 举报
回复
1.先上传.至于4MB限制可以修改web.config的配置 <httpRuntime maxRequestLength=""/>来实现

2.循环工作表.

这种做法可实现,效率不是很高,
如果要高效,可以采取activex控件上传文件至数据库服务器(这里开个server程序),然后用数据库的导入方法来做.
cpp2017 2008-06-25
  • 打赏
  • 举报
回复
1.先上传.至于4MB限制可以修改web.config的配置 <httpRuntime maxRequestLength=""/>来实现

2.循环工作表.

这种做法可实现,效率不是很高,
如果要高效,可以采取activex控件上传文件至数据库服务器(这里开个server程序),然后用数据库的导入方法来做.
o1230 2008-06-25
  • 打赏
  • 举报
回复
mark
dreamice01 2008-06-24
  • 打赏
  • 举报
回复
可以了,改一下WEB.CONFIG就可以了,扩大上传的最大文件限制!

dreamice01 2008-06-23
  • 打赏
  • 举报
回复

TO:ylk7256 (大嘴猫)和Yangbin990 兄,

你们的这个建议有一个问题:

好像按上传到服务器的方法,每次都只能上传的文件大小不能超过4M

能否有大文件上传的程序的写作办法。


破咖啡罐子 2008-06-23
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 dreamice01 的回复:]

TO:ylk7256 (大嘴猫)和Yangbin990 兄,

你们的这个建议有一个问题:

好像按上传到服务器的方法,每次都只能上传的文件大小不能超过4M

能否有大文件上传的程序的写作办法。
[/Quote]

那就只有FTP了……
daisy8675 2008-06-20
  • 打赏
  • 举报
回复
先 mark了,昨天你发给我的留言看不见下面的话
dreamice01 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ylk7256 的回复:]
我认为这个问题分2步来解决
1.要用户把文件上传到服务器,
2.服务器再来导入数据

至于数据量大的问题,可以从系统架构上来解决,比如在服务器上写个服务检查上传来的文件在后台来导入数据,而不是通过web来解决。
[/Quote]

兄弟,好建议!

有没关于用代码实现文件上传到服务器实例,发个我学习一下
  • 打赏
  • 举报
回复
我认为这个问题分2步来解决
1.要用户把文件上传到服务器,
2.服务器再来导入数据

至于数据量大的问题,可以从系统架构上来解决,比如在服务器上写个服务检查上传来的文件在后台来导入数据,而不是通过web来解决。
dreamice01 2008-06-20
  • 打赏
  • 举报
回复
谢谢两位大侠!!

这些能实现数据的远程导入吗?

我也就是用这些代码和方法折腾了一个多星期,始终无法实现在用户电脑上远程导入服务器的功能。

现在只能在服务器电脑上共享一个文件夹,让用户把文档拷到服务器的共享文件夹来实现


昨天试验成功了换文档存储位置的功能,但无法实现换工作表名的功能,这样一来,如果用OPENROWSET或OPENDATASOURCE函数均只能一次导入25000条不到的数据量。

而如果固定文档存储位置,用OPENROWSET或OPENDATASOURCE函数一次可导入60000条的数据量。但这样用户操作的灵活性就大打折扣了

有没有更好地办法来着?

最好是VB.NET代码,C#的看得有点费劲,没学过,呵呵
破咖啡罐子 2008-06-20
  • 打赏
  • 举报
回复
我用来查询excel的连接字符串:
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFileName & " ;Extended Properties=Excel 8.0;"
获得所有SHEET名称:
Public Function GetSheetNames() As ArrayList
Dim con As New OleDbConnection
con.ConnectionString = strCon
con.Open()
GetSheetNames = New ArrayList
Dim cmd As OleDb.OleDbCommand = con.CreateCommand()
Dim temp As DataTable = New DataTable
temp = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
con.Close()

For i As Integer = 0 To temp.Rows.Count - 1
Dim strSheetName As String = temp.Rows(i).Item(2).ToString.Replace("'", "")
If strSheetName.EndsWith("$") Then _
GetSheetNames.Add(strSheetName.Substring(0, strSheetName.Length - 1))
Next
Return GetSheetNames
End Function
新鲜鱼排 2008-06-20
  • 打赏
  • 举报
回复
public class CopyData
{
string _sourceConnectionString;
string _destinationConnectionString;

public CopyData(string sourceConnectionString,
string destinationConnectionString)
{
_sourceConnectionString =
sourceConnectionString;
_destinationConnectionString =
destinationConnectionString;
}

public void CopyTable(string table)
{
using (SqlConnection source =
new SqlConnection(_sourceConnectionString))
{
string sql = string.Format("SELECT * FROM [{0}]", table);

SqlCommand command = new SqlCommand(sql, source);

source.Open();
IDataReader dr = command.ExecuteReader();

using (SqlBulkCopy copy =
new SqlBulkCopy(_destinationConnectionString))
{
copy.DestinationTableName = table;
copy.WriteToServer(dr);
}
}
}
}
Refer to:
http://davidhayden.com/blog/dave/archive/2006/01/13/2692.aspxSqlBulkCopy - Copy Table Data Between SQL Servers at High Speeds


How to import data from Excel to SQL Server
破咖啡罐子 2008-06-20
  • 打赏
  • 举报
回复
Oracle数据库可以用VB.NET 调用Oracle提供的sqlloader命令来处理,SQLSERVER不熟,你可以找找是否有接近的命令。
新鲜鱼排 2008-06-20
  • 打赏
  • 举报
回复
顶起来看看~~~~~
dreamice01 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 daisy8675 的回复:]
先 mark了,昨天你发给我的留言看不见下面的话
[/Quote]

多谢兄弟帮忙!!
dreamice01 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jimmy_jpy 的回复:]
成批量导入的话,可以导入,前提必须是sql2005,vs2005的环境,我做过的,一次性把数据采集到本地,你在google里收集批量导入数据 sql就可以找到方法了,楼主好运!
[/Quote]

我的是SQL2000 和VS2003,看来环境跟你说的不一样。这个可以吗?我都试了一星期多了,但都无功而返
加载更多回复(10)
net的最近面试经典试题ASP.NET面试题集合 1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } } 4.C#的委托是什么?事件是不是一种委托? 答 : 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 5.override与重载的区别 答 : override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进多次重载以适应不同的需要 Override 是进基类函数的重。为了适应需要。 6.如果在一个B/S结构的系统需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进处理? 答 : this.Server.Transfer 7.编程遍历页面上所有TextBox控件并给它赋值为string.Empty? 答: foreach (System.Windows.Forms.Control control in this.Controls) { if (control is System.Windows.Forms.TextBox) { System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ; } } 8.编程实现一个冒泡排序算法? 答: int [] array = new int ; int temp = 0 ; for (int i = 0 ; i < array.Length - 1 ; i++) { for (int j = i + 1 ; j < array.Length ; j++) { if (array[j] < array) { temp = array ; array = array[j] ; array[j] = temp ; } } } 9.描述一下C#索引器的实现过程,是否只能根据数字进索引? 答:不是。可以用任意类型。 10.求以下表达式的值,出您想到的一种或几种实现方法: 1-2+3-4+……+m [Page] 答: int Num = this.TextBox1.Text.ToString() ; int Sum = 0 ; for (int i = 0 ; i < Num + 1 ; i++) { if((i%2) == 1) { Sum += i ; } else { Sum = Sum - I ; } } System.Console.WriteLine(Sum.ToString()); System.Console.ReadLine() ; 11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:一般为3层 数据访问层,业务层,表示层。 数据访问层对数据增删查改。 业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。 表示层为了与用户交互例如用户添加表单。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 12.在下面的例子里 using Sy

图 书 馆 管 理 系 统





摘  要
随着新世纪的到来,科学技术的突飞猛进,知识经济的日益发展,许多图书管理系统已经慢慢走向了老化。本系统正是针对这一现象设计了适应学校管理的图书管理系统。
本系统使用了Visual Basic6.0开发工具,结合ACCESS数据,VB的coolbar,toolbar控件,tabstrip控件,VB的DAO数据访问对象等来实现数据的操作。
图书管理系统主要对图书馆管理日常工作遇到的实际问题,例如图书信息、读者的信息、管理员信息、借阅者信息进管理,能够实现以下任务:
1.管理员管理操作
2.借还图书的操作
3.了解读者的信息
4.了解书籍的信息


关键词:Visual Basic6.0 ACCESS数据 DAO数据访问对象


目 录

摘  要 I
第1章 概 述 1
1.1 开发背景 1
1.2 系统的功能 1
1.3本文所做的工作 2
第2章 开发工具及其相关技术 3
2.1 开发工具 3
2.1.1 VB的介绍 3
2.1.2 VB的特点 3
2.2 数据基础与Access的应用 5
2.2.1.数据的概念和术语 5
2.2.2. Microsoft Access简介 5
第3章 系统分析 7
3.1 确定系统目标 7
3.2系统需求分析 7
3.3系统功能分析 9
3.3.1功能分析 9
3.3.2功能分析图 9
3.4与其他系统的关系 10
第4章 图书借阅信息管理模块的实现 11
4.1 “借书信息”窗体的实现 11
4.2 ““借书信息”窗体的加载 13
4.3“借书信息”窗体的卸载 13
4.4“借书信息管理”窗体功能的实现 13
第5章 系统调试 16
5.1系统的测试 16
第6章 使用说明 17
6.1系统的运 17
6.1.1 系统的安装 17
6.1.2 系统的登陆 17
总 结 18
参 考 文 献 19
附录A 代码 20
致  谢 24

第1章 概 述
1.1 开发背景
当今时代是飞速发展的信息时代。在各各业离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进信息管理。使用计算机进信息控制,不仅提高了工作效率,而且大大提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
一个现代化的图书馆在正常运营总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万几计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。
因此有一个智能化、系统化、信息化的图书管理系统十分重要的。充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱。方便友好的图形界面、简便的操作、完善的数据管理。将会使得图书馆系统极大限度的应用于现代化图书管理
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进信息管理。
他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
1.2 系统的功能
校园图书馆系统,是图书管理员的最佳助手。其功能如下:
1. 方便学生和老师借书、还书、查找、导出、统计等操作。
2. 可以自定义图书类别,读者类别,方便添加图书、管理图书、添加读者、管理读者。
3. 提供完善的借书和还书操作,拥有完全独立的数据系统,使图书室的数据安全得到了保障,数据管理为图书管理员提供:图书管理,读者管理。
4.数据查询为您提供:借阅情况,书库查询,读者查询。
5. 还又就是本具有安全的数据备份方案,简单易用。
1.3本文所做的工作
第一章 主要介绍的是图书管理系统开发的背景,以及图书管理系统的重要功能。
第二章 介绍的是开发的工具(VB),VB的特点 ,VB的介绍。利用VB开发的优势。以及运用到的SQL数据。简单的介绍了一下数据
第三章 图书管理系统的总体设计,划出了系统的功能层次图。在设计图书管理系统钱,所要做的基本工作。
第四章 本人所完成的“借阅信息管理模块”。功能是如何实现的 。在这一章里,有窗体的设计,窗体功能的实现。这一章也是本问的重点。
第五章 系统调试
第六章 使用说明。


用户描述 1.引言 随着信息技术高速发展,信息化程度的不断提高,计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作的不方便而继续沿用传统的手工劳动。 为了适应现代社会的高效率,提高当前在教学领域的管理水平,我们特开发一套学籍管理系统。 该系统由目前主流的程序设计开发工具实现,其功能在系统内部由源代码直接完成。通过操作手册,用户可以了解本软件的基本工作原理。操作人员只需输入一些简单的汉字、数字,即可达到自己的目标,从而为教学办公自动化带来了极大的方便。 1.1编目的 此文档作为用户对即将开发的软件的功能要求,是软件设计和开发者的主要依据。 1.2项目背景 项目名称:学生学籍管理信息系统 项目委托单位:XXX 软件开发单位:hustwh_xj 2.任务描述 2.1目标 使得学籍管理更为完善; 对学生档案的管理更为方便; 减轻教学管理人员的工作量。 2.2运环境 本系统是基于C/S模式的采用vb实现的学生管理信息系统(Students Management Information System),以后简称SMIS。数据服务器由access实现。操作系统:WINDOWS xp;数据服务器端软件Microsoft Access2000 + SQL查询语句。 3.数据描述 1. 数据流程图: 用 户 系统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 2.针对这个处理流程,现具体描述如下: ① 用户登录:对系统进初始化设置,包括对专业、课程和班级的设置 ② 新生报到:按专业分班进教学,并为每位新生分配学号,然后对学生基本信息进录入, ③ 学生分配到班级、领教材开始新的大学学习生活 ④ 用户对学生在校期间个人基本信息发生变化的,在系统修改 ⑤ 期末考试结束,把每个学生的成绩进录入、修改、查询和打印 3.功能 3.1功能划分 学生档案管理系统必须完成以下功能: 系统管理模块学籍管理模块,班级管理模块,专业课程管理模块,成绩管理模块,用户帮助模块。 3.2描述 系统管理模块:包括用户管理,重新登录,退出系统子功能 学籍管理模块:包括学生添加学生查询学生注销学生打印子功能。 班级管理模块:包括添加,查询,注销班级子功能。 专业课程管理模块:包括设置专业,设置课程,查询修改子功能。 成绩管理模块:添加成绩。 用户帮助模块:对各个病人的生理信号的安全范围进输入、修改、查询。 二、可性分析 1.可性研究的前提 学生档案管理系统必须完成以下功能: ① 数据添加功能:对于新生报到,系统必须具有班级的建立,课程的设置,如果新增专业,则能添加新专业,期末学生的考试成绩信息必须能够录入; ② 数据修改功能: 当上述资料发生变化或有错误信息输入时,应能够及时对数据修改和补充; ③ 数据查询功能:该系统的主要功能之一即根据用户提供的相关信息,能够及时查找出对应的学生信息,系统应该提供多种查询方法,以便满足用户的不同需求; ④ 数据打印功能: 学生基本信息和成绩录入后应可以打印出来形成文字档案,装入学生档案,这也是学生档案管理系统必须具备的功能。 2.技术可性 a. 经费、投资方面的来源和限制:各种硬件和工作人员工资需至少1万元 b. 硬件、软件、运环境和开发环境方面的条件和限制:软件需求:操作系统WINDOWS 2000 Advance Server以上;数据服务器端软件access。硬件需求:10M以上的LAN接入网络带宽,P4 3.0G Xeon CPU /1G内存/360G(10K) SCSI硬盘的服务器,P3以上微机(带网卡)的客户机,P4 3.0G Xeon CPU /1G内存/36G(10K) RAID硬盘的数据服务器 本系统采用vb实现,依靠其强大的控件系统,access数据管理系统和用c语音编制的传感器驱动相结合,能在2个月内开发出系统。 3.经济可性 学校如果要采用完全人工的方式处理,现在看来基本上是不太可能的。首先是一个存放的问题,必需要有一个足够大的档案室来存放这些档案,而且随着年数的增加,这个规模几乎是成几何式的增长。其次是存取,查阅的问题,随着档案的不断增加,要从如此复杂的档案库调阅某学生的档案所消耗的人力物力是无法估量的,而且学生档案本身就很复杂,要查阅或者修改其的某一项值,其修改的冗余度太大。最后是 一个保存和管理的问题,纸质媒介存放时间短,体积大,需要的人力物力过大。虽然制作一个数据管理系统的前期投资相对较大,但后期除了系统的维护升级和少量人力的投入以外几乎无其他投资,随着时间的推移,就会逐步显现经济上的巨大优势。 4.法律可性 法律可性是考虑要开发系统是否存在任何侵犯、妨碍和责任问题,用户操作可性考虑待开发软件的运方式在用户组织内是否得通,现管理制度、人员素质、操作知识是否可。 由于在本系统是有合同作为双方合作的基础,所以不会存在任何侵犯、妨碍和责任问题。即使存在了,也可以根据合同进分析,一定有人会负责任,所以此系统完全可以进开发。 由以上经济、技术、操作和法律四方面的分析可以看出,本系统的开发时机成熟,从多种角度考虑,都是可的。 5结论 本系统投资势在必。 三、需求分析 用户需求分析 根据系统分析得到的现业务处理流程,在反复研究后,首先得到目标系统即学生档案管理系统的业务流程,其处理流程如图所示 用 户 系统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 针对新的处理流程,现具体描述如下: ① 用户登录:对系统进初始化设置,包括对专业、课程和班级的设置 ② 新生报到:按专业分班进教学,并为每位新生分配学号,然后对学生基本信息进录入, ③ 学生分配到班级、领教材开始新的大学学习生活 ④ 用户对学生在校期间个人基本信息发生变化的,在系统修改 ⑤ 期末考试结束,把每个学生的成绩进录入、修改、查询和打印 3.1 用户调查 经过详细的调研,并多次与学生档案管理的老师进研讨后,首先加深了对学生信息管理系统业务的深刻了解,其次在充分熟悉学生档案管理业务的同时,将整个学生档案管理的业务流程描述如下: ○1 新生入校,首先报到并进登记注册,然后到财务部门缴费。根据学生被录取的专业,持缴费单到所在系部报到注册。 ○2 到系或部注册后,根据选报专业分配到班级 ○3 进入正常大学生活,参加各种教学活动,学期期末要求每位同学参加各科的期末考试。 ○4 考试结束,由各系或部将每位学生的考试成绩及其他一些相关信息记录到每个同学的档案。 根据以上总结,得出可的业务流程图 办理登记手续 系部 安排课程 档案信息 开始学习活动 3.2 构造系统的逻辑模型 根据现学生信息管理的业务流程,确定数据流图的源点和终点都选定为学生,如此就得到了学生档案管理系统的基本系统模型。 学生基本信息 学生成绩信息 根据基本系统模型,逐步细化,得到描绘逻辑系统细化后的数据流图。 D1 学生信息表 D3 课程信息表 学生基 本信息 课程信息 新生报到 1.2 1.3 成绩信息 注册 建档分班 课程确定 班级 信息 D2 班级信息表 D4 成绩信息表 学生 毕业分档 1.4 成绩信息 处理档案 系统的主要数据元素的数据字典卡片,以具体说明数据字段卡片相关数据的含义 3.3 数据分析——概念模型设计 分析用户对数据的要求。 3.4.1 数据建模 实体:学生、课程、专业、班级等。它们的实体图分别如图所示 学生实体 学号 姓名 政治面貌 性别 出生日期 家庭住址 课程实体 课程名称 课 程 所属专业 专业实体 专业名称 专 业 所属院系 班级实体 班级名称 人 数 所属院系 班 级 所在教室 辅导员 根据两两实体之间的联系,然后进合并,给出所有实体的联系图即E-R图,如图1所示 课程 学 学生 成绩 属于 班级 属于 专业 图1.9 学生信息管理的E-R图 3.4.2 关系描述的设计 学生(学号、姓名、性别、政治面貌、出生日期、专业、班级、家庭住址、联系方式、备注) key为学号, 课程(课程名称、所属专业)key为课程名称, 专业(专业名称、所属院系)key为专业名称 班级(班级名称、所属院系、辅导员、教室、人数)key为班级名称 成绩(学号、姓名、专业、课程名称、成绩)key为学号与课程名称 在考虑系统安全的前提下,需要增加用户关系,其关系模式如下: 用户(用户名称、密码、用户ID)key为用户名称 得出以上关系后,根据关系数据的理论要求,需要对所有关系进关系规范化。 系统设计 系统设计一般分为总体设计和详细设计,进过需求分析阶段的工作,已经清楚系统必须完成的工作,下面的工作就是决定“如何做”的问题。总体设计的基本目的就是“概括地说系统应该如何实现?”。通过该阶段的工作将划分出组成系统的物理元素——程序、文件、数据、文档等,另一方面的主要工作就是设计软件的结构,即确定系统都由哪些模块组成及模块之间的相互关系。 3.5 软件系统结构的设计 3.5.1得到新的业务流程 目标系统即学生档案管理系统的业务流程 用 户 系统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 具体描述如下: ① 用户登录:对系统进初始化设置,包括对专业、课程和班级的设置 ② 新生报到:按专业分班进教学,并为每位新生分配学号,然后对学生基本信息进录入, ③ 学生分配到班级、领教材开始新的大学学习生活 ④ 用户对学生在校期间个人基本信息发生变化的,在系统修改 ⑤ 期末考试结束,把每个学生的成绩进录入、修改、查询和打印 3.5.2 系统功能结构图 学生信息管理系统的系统功能结构图。 学生档案管理系统 系统 学籍管理 添加用户 修改密码 退出系统 添加学籍 修改学籍 删除学籍 打印信息卡 班级管理 专业与课程 添加班级 修改班级 专业信息 课程信息 设置专业课程 添加专业信息 设置课程 添加课程 修改课程 成绩管理 添加成绩 查询修改成绩 打印成绩单 3.6 数据的设计 3.6.1 数据的逻辑设计 根据前面得到的各个关系,现把它们转化为数据表。 ① 学生信息表 ② 课程信息表 ③ 专业信息表 ④ 班级信息表 ⑤ 成绩信息表 ⑥ 用户表 3.6.2 数据的物理设计 考虑程序设计的简易性及通用性,本学生管理信息系统采用Microsoft的Access2000数据,并在其下创建6个数据表,结构分别如下: ① 学生信息表(student),共有10个字段,分别为:学号、姓名、性别、政治面貌、出生日期、专业、班级、联系电话、家庭住址、备注。 表1 学生信息表的结构 字段名 数据类型 字段长度与格式 关 键 字 学号 文本 15 是 姓名 文本 8 否 性别 文本 2 否 政治面貌 文本 10 否 出生日期 日期型 YYYY-MM-DD 否 专业 文本 20 否 班级 文本 10 否 家庭住址 文本 30 否 联系电话 文本 15 否 备注 文本 50 否 ② 课程信息表(kc),本表有2个字段:课程名称、所属专业,见表2 表2 课程信息表的解放 字段名 数据类型 字段长度与格式 关键字 课程名称 文本 20 是 所属专业 文本 20 否 ③ 班级信息表(class),共有5个字段分别为:班级名称、所属院系、辅导员、教室、人数,见表3 表3 班级信息表结构 字段名 数据类型 字段长度与格式 关键字 班级名称 文本 10 是 所属院系 文本 20 否 辅导员 文本 8 否 教室 文本 15 否 人数 文本 3 否 ④ 专业信息表(zy),有2个字段分别为:专业名称、所属院系 表4 专业信息表结构 字段名 数据类型 字段长度与格式 关键字 专业名称 文本 20 是 所属院系 文本 20 否 ⑤ 成绩信息表(score),有5个字段分别为:学号、姓名、专业、课程名称、成绩, 表5 成绩信息表结构 字段名 数据类型 字段长度与格式 关键字 学号 文本 15 是 姓名 文本 8 否 成绩专业 文本 20 否 课程名称 文本 10 是 成绩 整型 否 ⑥ 用户表(yonghu),有2个字段为:用户名称、密码 表6 用户表结构 字段名 数据类型 字段长度与格式 关键字 用户名称 文本 8 是 密码 文本 8 否 以上为本系统的6个表。
1引言 背景 A.所建议开发的软件系统的名称:图书管理系统 B.本项目的任务提出者:计算机科学与技术专业30队 开发者:10班林雄伟 用户:图书馆; C.该软件系统同其他系统或其他机构的基本的相互来往关系:该系统目前为止为单机版,独立于其他系统。 2可性研究的前提 2.1要求 功能:这是一个图书管理系统,主要负责图书的采购信息存档、对图书信息的查询及编辑、对学生相关信息的管理、对借阅书本情况的管理; 数据的来源:由韶关学院图书室提供 处理流程和数据流程用图表的方式:表示出最基本的数据流程和处理流程,并辅之以叙述; 在安全与保密方面:登陆系统时,需验证身份和密码,只有图书管理员的身份才能进入系统进信息的操作。 2.2目标 A.由于原先图书管理采用的人工系统,浪费人力物力财力,图书管理系统可以改善这种情况,只需一台电脑和一个管理员老师就能轻松完成。 B.提高对新书入库、借阅图书以及学生信心管理的速度。 C.减少人力的投入的同时提高了信息处理的精度和准确度,在输入无误的基础上可保证数据的正确性。 D.改进了管理服务的质量,可由系统对入库图书进自动分类、归类,学生信息整理、借阅情况登记入档。 E.改进人员的利用率,减少了前台操作人员,更多的人员可用于为借阅者服务、更新采购图书等其他事物,节省人力资源。 2.3条件、假定和限制 a.硬件配备不齐,内存不够,需升级到Windows xp professional。笔记本电脑的性能不够稳定,对SQL数据软件和VB、.Net等开发工具运有不利影响。 b.可利用的信息和资源比较单一,客户需求分析主要来源于对原图书管理老师的采访和询问,又需求分析员进概括整理提炼。而技术方面,对Visual Basic以及.Net掌握运用还有待提高,不足之处靠借阅有关书籍进补充,组内成员互相讨论分析解决。其余包括经济效益、社会效益分析则靠网上查阅资料获得。 c.经费不足 d.进系统方案选择比较的时间较短,只有一至两个星期 e.系统投入使用的最晚时间为本学期期末 3对现有系统的分析 现有的韶关学院资料室管理系统完全是人工系统,下面对如下几个方面进分析,以进一步阐明开发新系统的必要性。 3.1处理流程和数据流程 1.进书 拿到图公司的书目选书——抄下所选书名制成表单送至院办公室敲章——办公室向领导打报告——领导批了以后将定单寄至图公司——拿到书后寄钱 (注:图公司——国图书进出口公司韶关分公司) 2.书籍入架 按分类号和作者号对书籍进分类——流通卡,敲章——入架(注:这一过程约两星期) 3.图书借阅 本科生,大专生只能在资料室阅读,凭证件换取借书卡,还书后取回证件;硕士生,博士生,老师可外借(文书两星期,外文书一个月),其硕,博须导师的担保书,管理员登记图书借阅情况。 3.2工作负荷 学院资料室只有一位老师管理,她负责图书从进书,分类,入架,借阅,维护,卫生打扫的所有事宜,完全靠人工,工作量很大。 3.3费用开支 由于学院资料室只有一位老师人工管理,除去购买书籍费用和老师工资外几乎不需要什么开支。 3.4人员 只有一位老师,当她事假时资料室一般是关闭的。 3.5设备 一台能工作的电脑,两万多册书籍及书架,桌椅。 3.6局限性 虽然老师自78年从事图书管理工作以来积累了丰富经验,对资料室的书籍基本了如指掌,但换了其他人则茫然不知所措,借阅工作根本不能正常进,这从老师一有事资料室暂时关闭可见一斑,况且现在书的数量还不是很多,随着资料室规模的逐渐扩大,一个再有经验的人在精力和体力上都应付不过来,因此,采取学特院资料管理信息化事在必 4.1对所建议系统的说明: 该软件是一个针对韶关学院图书室的图书管理系统。 (1)功能概括: a) 存储、查阅、修改书库信息; b) 存储、查阅、修改学生相关信息; c) 统筹管理借书过程; (2)系统环境以及工具: 运环境:Windows 编程语言:VB 数据SQL 4.2、系统要着重提出的问题: 采购书本的唯一性: 可以根据书本的书名及出版社唯一标识书本(假设同一家出版社不出现书本重名现象),除非特殊情况,否则购书前查阅书库信息,保证预购书本; 4.3工作负荷: 该系统工作量小,一般情况下不会由于信息量大而造成麻烦。因为这只是提供给管理员操作的简单软件,管理员同一时间只能做有限的事情。有关数据的存储量,就目前而言,客户的藏书量不是很大。如果日后有所扩大,可以在原有基础上作相应的扩充,这在SQL是很容易办到的。 4.4改进之处: 原本客户使用的是人工系统(具体情况在前面已经介绍过),费时、浪费劳动力;办事效率不高;学生借书,管理员管理都有很多的不便;使用了这个系统,就可以使借书过程系统化,方便统计书库信息;同时系统所提供的查询功能明显的节约了时间;也为采购人员解决了重复购书的困扰。 4.5影响: a)设备方面:目前而言,客户方是没有任何系统设备的,但是由于该软件所需硬件设备仅仅是一台电脑,所以可性比较高; b)软件方面:SQL以及VB; c)用户单位机构方面:使用该系统,客户原有体系几乎不需要太大的变化,这是个即装即用的软件,对人员数量和技术的要求不高。只要图书室管理员会简单的计算机操作即可。 d)经费方面:配一台电脑需要一定的经费,具体我们会在经济可做出相应的解释; 4.6技术条件方面的可性 技术方面,我们选择的是VB和SQL,都是组员熟悉的语言,即使遇到部分困难,也可以从丰富的参考书找到解决方案。所以技术方面是绝对可的。 6投资及效益分析 6.1图书馆管理系统预期资金投入表: 内容 第一年 第二年 第三年 备注 硬件设备 35000 1000 1000 第一年添加计算机等,费用较高,以后只 是维护方面。 应用软件 及维护( 包括数据 3000 1000 1000 第一年要购买应用软件,后面主要是软件 库管理软 维护费 件) 开发费用 5000 2000 1000 后两年进功能添加 人员培训 1000 500 500 备用金 3000 1000 1000 额外支出及应急之用 总计 47000 7500 6500 说明: 第一年由于硬件设备比较的昂贵因此耗费大量的资金,应用软件的配置及开发费用也高。 但是到了第二年,第三年,由于不需要购置基本设备费用减少,但是仍需要进设备的维护等。而且由于第一年的开发完成试运,可能还需要添加新的系统功能,因此还需要开发费用。 6.2基本建设投资 包括采购、开发和安装下列各项所需的费用,如: a.计算机硬件设备 b.数据通讯设备 c.应用的软件 d.数据管理软件 6.3 其他一次性支出 包括下列各项所需的费用,如: a.研究(需求的研究和设计的研究)——包括在开发费用 b.数据的建立 c.检查费用和技术管理性费用 d.培训费、旅差费以及开发安装人员所需要的一次性支出 6.4 非一次性支出 列出在该系统生命期内按月或按季或按年支出的用于运和维护的费用,包括: a.设备的租金和维护费用 b.软件的租金和维护费用 c.数据通讯方面的租金和维护费用 d.其他经常性的支出等 6.5收益 预计系统完成后的第一年为试运阶段,半年后根据试用情况后决定是否投入销售,对使用该系统的图书馆收取一定的费用,主要是系统的维护费用。估计从第三年收回成本及盈利。一下仅为基本预期收益,不包括由于系统速度的改进而对应的开支减少等。 内容 第一年 第二年 第三年 备注 软件销售单价/件 8000 10000 15000 第二年,第三年由于添加新的 功能及软件的逐步推广,售价 提高 软件功能升级 3000 3000 3000 第一年不够完善,而第二年第 三年日趋成熟,因而功能升级 费降低 日常维护 2500 3000 3000 处理日常的突发事件等 届时已销售数量估计 1 3(售出两套) 5(售出两套) 总计 13500 38000 60000 说明: 第一年的试运由于软件不是很完善,因而费用会较低。后两年由于软件价格要相对的提高,因而可能购买方不是很多,仅作保守估计。 从上表可知:软件销售为一次性收益,而功能的升级和维护为非一次性收益。而除此以外还有不可定量的收益。如:服务的改进,由操作失误引起的风险的减少,信息掌握情况的改进,组织机构给外界形象的改善等,不一一说明。 6.6 投入产出分析 由上面的两张表可以看出:第一年,投入资金47000元,收益为13500元;第二年投入7500,而收益为38000;第三年投入6500,收益为60000。因此,可以看出第一二两年没有实现投资回收,第三年回收资金并实现盈利。 6.7收益投资比 净收益:三年投资估计为47000+7500+6500=61000; 收益为13500+38000+60000=111500 净收益为111500-61000=50500 回收期限:可看出到第三年可回收资金 投资回报:平均年收益为50500/3=16833.33 ROI=(16833.33/61000)*100%=27.60% 净现值:假设年折扣率为10%则:第一年收益为13500;第二年为38000, 折算为38000*0.9091=34545.8;第三年收益为60000,折算为 60000*0.8264=49584。所以总收益为97629.8,净收益为36629.8。 7社会因素方面的可性 使用方面的可性韶关学院在没有使用我们这套系统前,采取的是人工方式,相对而言耗时大,效率低。而根据现有的硬件条件以及学院的政管理模式以及工作制度,在办公室,管理学籍的老师都配备电脑。而且电脑的系统软件都是WINDOWS2000 以上的,所以足够可以来运我们的软件;从学院老师们的文化素质来看,我们的软件操作简单,运方便,在用我们的软件来处理学生学籍系统是没有什么困难的。 8结论 经过了我们整个的可性研究报告的研究,最终我们得出了一个研究的结论。 结论是:我们可以立即执我们的软件设计,来达到我们的预期目标。
主要功能 人事管理是所有工厂、公司、企事业单位所必须的,它包括人事档案的统计、查询、更新、打印输出等。如果这些工作由人工统计,则工作量很大,若公司人数有几万甚至几十万,人工统计将变得不可想象,用计算机统计可使人们从繁重的劳动解脱出来,仅一些简单的操作便可及时、准确地获得需要的信息。 企业人事管理系统是现代企事业单位管理人员、工资、日常考勤所必须拥有的信息化管理系统之一,它包括人事信息的增、删、改、查,人员调动、人员离职,人事信息的打印输出,日常考勤管理、工资管理和福利管理等, 操作注意事项 (1)管理员用户名为tsoft,密码为111。 (2)运本系统还需要在计算机上安装Crystal Report 10,本软件可到官方网站下载,安装方法同安装一般的应用软件一样,这里就不介绍了。 (3)运本实例前,应将在“控制面板”下的“区域和语言选项”窗口,将时间格式设为“HH:mm:ss”样式,日期格式为“yyyy-MM-dd”样式。 (4)以上操作都成功完成以后,如果在程序启动时仍然无法进入系统。可以尝试下列解决方法: 在SQL Server2000企业管理器,展开SQL Server服务器组,在“Local服务器”上单击鼠标右键选择“属性”,然后在弹出的“属性(配置)”对话框选择“安全性”选项卡,在此选项卡的“身份验证”标签处,选择“SQL Server和Windows(S)”单选按钮,最后单击“确定”按钮完成设置。 业务流程 要想使用本系统,按照以下流程操作: (1)首先通过“部门管理”/“添加部门信息”模块添加部门信息, (2)通过“人事管理”/“添加员工信息”模块,添加员工信息。 (3)通过“考勤管理”菜单的功能模块,可设置员工的上下班时间及假记录。 (4)通过“福利管理”/“添加福利信息”模块,添加员工的养老保险、失业保险及医疗保险金额,此金额将在基本工资扣除。 (5)通过“工资管理”/“工资信息管理”模块,计算员工工资信息。 (6)通过“工资管理”/“过期数据处理”模块,可按月份清除当前工资信息表的工资记录。 (7)通过“工资管理”/“工资导出”/“导出Excel”命令,可将工资信息导出到Excel表。 (8)通过“人事信息统计”菜单的功能模块,可以报表的形式统计当前员工的年龄、文化程度、工资信息等。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧