ASP中rs.fields不固定的情况下,sqlstr字符串拼接变量不识别无法识别,注:asp,不是asp.net,数据库为access
<%Set xlsconn = server.CreateObject("adodb.connection")
set rs=server.CreateObject("adodb.recordset")
source1=server.mappath("..")&""&"pic_1\202195175709.xls"
myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &source1& ";Extended Properties=Excel 8.0"
xlsconn.open myConn_Xsl
sql="select 身份证号,姓名 from [工资表$]"
set rs=xlsconn.execute(sql)
if not rs.eof then
while not rs.eof
sql1=readstr() 'readstr()为读取txt内容
'sql1="insert into sqlstr(id,p_name)values('"&rs("身份证号")&"','"&rs("姓名")&"')" 此处注释掉了,可正常运行
Response.Write sql1
conn.execute(sql1)
rs.movenext
wend
end if
rs.close
set rs=nothing
%>
sqlstr.txt中的内容为 insert into
gzb1
https://ask.****.net/id,p_name,iyear,gz_jc,gz_gl,gz_jx,gz_jt
values('&rs.Fields("身份证号")&','&rs("姓名")&','&rs("月份")&','&rs("基础工资")&','&rs("工龄工资")&','&rs("绩效工资")&','&rs("岗位津贴")&')
运行结果,insert into 中&全变为了字符串,&变量&的功能变成了单纯的字符串,没有实现带入变量
因为excel的列不定时增加,数据库的列也是不定时增加,所以需要动态拼接
您好,
首先你需要遍历rs.Field 列,然后您应该使用上文类似例子,在ASP里面不能嵌双引号,所以可以用'代替双引号,放在双引号里面,连接两个变量用+或者&所以"',"又是一段,中间夹了一个name就是表单传来的变量,这样就可以在这个变量外面加两个'',表示是字符串了.
"insert into sqlstr(id,p_name,month,Basesalary,Senioritysalary,Performancepay,Joballowance)values("&rs.Fields(i).Name&",'"&rs("姓名")&"','"&rs("月份")&"','"&rs("基础工资")&"','"&rs("工龄工资")&"','"&rs("绩效工资"")&"','"&rs("岗位津贴")&"')"