注册 登录
编程论坛 ASP技术论坛

怎样用asp代码在已有数据库中插入一个新表?

shootingstar 发布于 2007-06-27 16:05, 1630 次点击

怎样用asp代码在已有数据库中插入一个新表?数据库是Access的.

新表的字段类型不一样...而且有一个字段是"自动编号"类型的(或者定义主键)...

可以实现吗?请求高手帮忙。谢谢...

11 回复
#2
shootingstar2007-06-27 16:23
这个不知道能不能实现啊...??
#3
阳光白雪2007-06-27 16:33
ASP中创建数据表

[QUOTE]<%
CreateTableSql = "create table [System_Option]([Option] varchar(100), [Value] varchar(2000))"
CreateTableName = "System_Option"
CreateTableMsg = "创建系统信息表"
dim ReturnMsg
If Not CreateTable(CreateTableSql, CreateTableName) Then
ErrFlag = False
ReturnMsg = CreateTableMsg & "失败!"
Else
ErrFlag = True
ReturnMsg = CreateTableMsg & "成功!"
End If
response.Write(ReturnMsg)

'函数作用:创建数据表
Function CreateTable(CreateSQL,TableName)
Dim getTheTable
getTheTable = True
On Error Resume Next
Err.Number = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set rst = server.createobject("ADODB.Recordset")
''判断表是否已经存在,存在则不用创建
rst.Open "select name from sysobjects where type='u' and name='"& TableName &"'", Conn, 3, 3
If not rst.Eof then
getTheTable = False
End if
rst.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If getTheTable Then
Conn.Execute "" & CreateSQL & ""
End If
''清除表中记录,可根据需要删除
Conn.Execute "delete from [" & TableName & "]"
''判断是否创建成功
If Err.Number <> 0 Then
CreateTable = False
Exit Function
End If
CreateTable = True
End Function
%>[/QUOTE]


[此贴子已经被作者于2007-6-27 17:01:04编辑过]

#4
shootingstar2007-06-27 16:50
谢谢...已经解决了..很感谢.
#5
madpbpl2007-06-27 16:52

[CODE]<%
if request("act")="new" then
banji=request.form("class")
set cnn=server.createobject("adodb.connection")
str="driver={microsoft access driver (*.mdb)};dbq=" &server.mappath("database\db.mdb")
cnn.open str
newtable="create table "&banji&" (id AUTOINCREMENT,姓名 varchar(8),学号 varchar(10))"
cnn.execute newtable
kecs=session("kcs")
for i=1 to kecs
subject=request.form("kechengming("&i&")")
altable="alter table "&banji&" add column "&subject&" int null"
cnn.execute altable
next
%>
<%
else
%>
<html>
<body>
<%
kecs=session("kcs")'此session在以前的表单定义过/
%>
<form method="POST" name="form2" action="test.asp" ><input type="hidden" name="act" value="new" size="20">
<center>请输入班级: <input type="text" name="class"></br>
<% for i= 1 to kecs %>
课 程 <%=i%> <input type="text" name="kechengming(<%=i%>)" value="" size="20"></br>
<%next%>
<p><input type="submit" value="提交"> <input type="reset" value="重写" name="B2"></center><p></form>
</body>
</html>
<%end if%>[/CODE]


<!--AUTOINCREMENT 自动编号
CHAR 文本,默认255字符(不能为NULL),使用CHAR(10),10个字符
MEMO 备注
INT 长整型
PRIMARY KEY (字段名) 设为主建 -->

#6
madpbpl2007-06-27 16:58
还是阳光白雪的这个更好一些。
#7
shootingstar2007-06-27 17:16
呵呵..是啊.
#8
shootingstar2007-06-27 17:16
不管怎样...都谢谢你们的帮助..
#9
巴人2008-02-21 15:49
<%
'createtablesql为创建表的sql语句
CreateTableSql = "create table [System_Option]([Option] varchar(100), [Value] varchar(2000))"
'此为新的表名
CreateTableName = "System_Option"
'显示的说明语句
CreateTableMsg = "创建系统信息表"
dim ReturnMsg
If Not CreateTable(CreateTableSql, CreateTableName) Then
ErrFlag = False
ReturnMsg = CreateTableMsg & "失败!"
Else
ErrFlag = True
ReturnMsg = CreateTableMsg & "成功!"
End If
response.Write(ReturnMsg)

%>
#10
巴人2008-02-21 15:50
'函数作用:创建数据表
Function CreateTable(CreateSQL,TableName)
Dim getTheTable
getTheTable = True
On Error Resume Next
Err.Number = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set rst = server.createobject("ADODB.Recordset")
''判断表是否已经存在,存在则不用创建
rst.Open "select name from sysobjects where type='u' and name='"& TableName &"'", Conn, 3, 3
'没有到rst.eof时候为假
'if not rst.eof表示没有遍历完整个表就已找到满足条件的记录.
'在这里表示表已经存在则getthetable为假;若getThetable为真时,表示表不存在
If not rst.Eof then
getTheTable = False
End if
rst.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'若表不存在则创建新表
If getTheTable Then
Conn.Execute "" & CreateSQL & ""
End If
''清除表中记录,可根据需要删除
Conn.Execute "delete from [" & TableName & "]"
''判断是否创建成功
If Err.Number <> 0 Then
'将返回值给函数名
'失败
CreateTable = False
Exit Function
End If
'成功
CreateTable = True
End Function
#11
巴人2008-02-21 15:55
我有两个地方不懂,望"阳光白雪"能解释下
第一个:ErrFlag变量可否去掉,我觉得没有什么作用?
第二个:rst.Open "select name from sysobjects where type='u' and name='"& TableName &"'", Conn, 3, 3中"3,3"表示什么含义?能否详细解释下这句话的各个参数?如type='u'是什么含义?sysobjects又是什么?
#12
巴人2008-02-21 15:57
不知道,我前面对你代码继续解释理解是否正确?
1