一次提交写入多条数据?

我希望一次提交一条内容,但这条内容里面根据特定字符自动分割成多条记录写入ac数据库。用asp程序。请问可以实现吗?

举例:
我提交如下一段内容,里面用@符号来分割,同时还包括了第二个时间字段,希望入库4条记录(同一个表单只提交一次,入库4条,每条两个字段)。对了,数据库有两个字段(内容和时间,$之间的是时间字段。 )。

如下例子,我要把用@符号分割的内容提交到ac数据库,但是内容是第一个字段,时间是插入到同一条记录的第二个字段。

这里是要入库的内容1
$时间$
@

这里是要入库的内容2
$时间$
@

这里是要入库的内容3
$时间$
@

这里是要入库的内容4
$时间$
@

阅读 2.1k
2 个回答

你要把提交的文本解析成多条记录,然后把这些记录插入数据库。先在页面新建一个表单,用来提交文本内容:

<form action="insert_records.asp" method="post">
  <label for="content">Content:</label>
  <br>
  <textarea name="content" rows="10" cols="30"></textarea>
  <br>
  <input type="submit" value="Submit">
</form>

然后再建 insert_records.asp 的 ASP 文件:


<%@LANGUAGE="VBSCRIPT"%>
<%
Dim content, records, record, contentAndTime
content = Request.Form("content")

' 按结尾分割内容
records = Split(content, "结尾")

' 定义一个用于连接数据库的函数
Function connectDatabase()
    Dim conn
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("path/to/your/database.mdb") & ";"
    Set connectDatabase = conn
End Function

' 连接数据库
Set conn = connectDatabase()

' 循环处理每条记录
For Each record In records
    If Trim(record) <> "" Then
        ' 按开头分割内容和时间
        contentAndTime = Split(record, "开头")
        
        ' 插入数据
        Dim sql
        sql = "INSERT INTO your_table_name (content, time) VALUES (?, ?)"
        Set cmd = Server.CreateObject("ADODB.Command")
        cmd.ActiveConnection = conn
        cmd.CommandText = sql
        cmd.CommandType = 1 'adCmdText
        cmd.Prepared = True
        cmd.Parameters.Append cmd.CreateParameter("@content", 202, 1, 255, Trim(contentAndTime(1))) ' adVarWChar
        cmd.Parameters.Append cmd.CreateParameter("@time", 202, 1, 255, Trim(contentAndTime(2))) ' adVarWChar
        cmd.Execute
    End If
Next

' 关闭数据库连接
conn.Close
Set conn = Nothing

' 提示完成
Response.Write "Inserted records successfully."
%>
<%
'获取提交的内容
Dim strContent
strContent = Request.Form("content")

'按照特定字符进行分割
Dim arrRecords
arrRecords = Split(strContent, "结尾" & vbCrLf & "开头")

'连接数据库
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("yourdatabase.mdb")

'遍历分割后的每条记录
Dim i
For i = 0 To UBound(arrRecords)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题