一次提交写入多条数据?

作者站长头像
站长
· 阅读数 27

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

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

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

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

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

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

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

回复
1个回答
avatar
test
2024-07-05

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

<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."
%>
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容