asp.net 通过后台Javascript 上传表数据
Upload.aspx:
<%@ LANGUAGE='JAVASCRIPT' %>
<!-- #include file = "../adojvs.inc"-->
<!-- #include file = "../conn.inc"-->
<%
// 执行SQL语句
//2012-12-6 Gu Laicheng
function RunSQL(MySQL)
{
var ret="";
var rs1 = Server.CreateObject("ADODB.Recordset");
rs1.CursorType = adOpenKeyset;
rs1.LockType = adLockBatchOptimistic;
// Response.Write("<br/>" + MySQL + "");
try {
rs1.Open(MySQL,conn);
}
catch (ex) {
var ErrStr,ErrStr0,ErrStr1="==>"+new Date()+"<br/>";
ErrStr0 = "Error:"+ex+"<br/>"+MySQL;
var o = conn.Errors;
for (var i=0;i<o.Count;i++)
{
ErrStr1 += o.Item(i).Number + ":" + o.Item(i).Description+", "+o.Item(i).SQLState+";"+o.Item(i).Source ;
}
ErrStr =ErrStr0+"<br/>"+ErrStr1;
o.Clear();
Response.Write("<br/>" + ErrStr + "");
}
if(rs1.State==1)
{
if (!(rs1.BOF && rs1.EOF))
{
ret = rs1(0).value;
}
rs1.Close();
}
return ret;
}
var Class = {
create: function() {
return function(n) {
this.initialize.apply(this, arguments);
}
}
}
var TABLE = Class.create();
TABLE.prototype = {
initialize:function(TabName){
this.TabName = TabName;
this.Fields=[];
this.FieldCount = 0;
this.values=[];
this.types=[];
this.MySQL="";
this.flag;
},
F:function(s)
{
var a=s.split(",");
for(var i=1;i<a.length;i++)
{
this.Fields[i-1]=a[i];
}
this.FieldCount = a.length-1;
},
V:function(s)
{
var a=s.split(",");
this.flag=a[0];
for(var i=1;i<a.length;i++)
{
this.values[i-1]=a[i];
}
if(a[0]==1) this.Replace();
if(a[0]==2) this.Insert();
if(a[0]==3) this.Update();
if(a[0]==4) this.Delete();
},
Replace:function()
{
if(this.values[0]==0)
this.Insert();
else
this.Update();
},
Insert:function()
{
var fs="",vs="";
var j=0; //i,j可能并不同步,有些列值可能为空,表示不插入其值,要保证sql的语法正确
for(var i=0;i<this.FieldCount;i++)
{
if(this.values[i] == "NULL") continue;
if(j == 0)
{
fs += this.Fields[i];
vs += "'"+this.values[i]+"'";
} else
{
fs += ","+this.Fields[i];
vs += ",'"+this.values[i]+"'";
}
j++;
}
this.MySQL="insert into "+this.TabName+" ("+fs+") values ("+vs+")";
},
Update:function()
{
this.MySQL="update "+this.TabName+" set ";
for(var i=1;i<this.FieldCount;i++)
{
if(this.values[i] == "NULL")
{
if(i != 1) this.MySQL += ",";
this.MySQL += this.Fields[i]+"=null ";
} else
{
if(i != 1) this.MySQL += ",";
this.MySQL += this.Fields[i]+"='"+this.values[i]+"'";
}
}
this.MySQL += " where "+this.Fields[0]+"='"+this.values[0]+"'";
},
Delete:function()
{
this.MySQL="delete from "+this.TabName+" where ";
var j=0; //i,j可能并不同步,有些列值可能为空,表示不以其为条件,要保证sql的语法正确
for(var i=0;i<this.FieldCount;i++)
{
if(this.values[i]=="") continue;
if(this.values[i] == "NULL")
{
if(j != 0) this.MySQL += " and ";
this.MySQL += this.Fields[i]+" is null ";
} else
{
if(j != 0) this.MySQL += " and ";
this.MySQL += this.Fields[i]+"='"+this.values[i]+"'";
}
j++;
}
}
};
var fso, ts, s;
var ForReading = 1, ForWriting = 2;
var name;// = "c:\\web\\yafulwisad\\t\\t.csv";
name = Server.MapPath("t.csv");
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(name))
{
Response.Write(" 文件 "+name+" 存在!");
ts = fso.OpenTextFile(name, ForReading, true);
// ts.SkipLine();
var data=new TABLE(Request.QueryString("a")+"");
s = ts.ReadLine();
data.F(s);
Response.Write("<br/>"+data.FieldCount);
Response.Write("<br/>" + s.replace(/,/g,"\t") + "");
Response.Write("<br/>" + data.Fields + "");
while (!ts.AtEndOfStream)
{
s = ts.ReadLine();
// Response.Write("<br/>" + s.replace(/,/g,"\t") + "");
data.V(s);
Response.Write("<br/>" + data.MySQL + "");
RunSQL(data.MySQL);
}
ts.Close();
}
else
{
Response.Write(" 文件 "+name+" 不存在,请核对后查询!");
}
%>