时间:2016-02-16 01:28 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net下将纯真IP数据导入数据库中的代码】,下面是详细的讲解!
asp.net下将纯真IP数据导入数据库中的代码
File:do.ashx?args=ImportIPData
public void ProcessRequest(HttpContext context)
{
if (context.Request.RequestType==“POST”)
{
string action=context.Request["action"];
//提交IP数据
if (string.IsNullOrEmpty(action) || action==“submit”)
{
string dbserver=context.Request["dbserver"], tbname=context.Request["tbname"];
StringBuilder sb=new StringBuilder(500);
sb.Append(“server=”).Append(dbserver).Append(“;database=”).Append(context.Request["dbname"])
.Append(“;uid=”).Append(context.Request["dbuid"]).Append(“;pwd=”).Append(context.Request["dbpwd"]);
//保存数据库连接字符串及数据表名
HttpContext.Current.Session["ip_dbconnstring"]=sb.ToString();
HttpContext.Current.Session["ip_tablename"]=tbname;
//读取IP数据并缓存
IList<string> ipList=new List<string>();
HttpPostedFile file=context.Request.Files[0];
using (StreamReader sr=new StreamReader(file.InputStream, Encoding.UTF8))
{
while (sr.Peek() !=-1)
{
ipList.Add(Regex.Replace(sr.ReadLine(), “\\s{2,}”, ” “));
}
}
HttpRuntime.Cache.Insert(“ip_data”, ipList);
//想客户端发送数据信息(Json格式)
sb.Remove(0, sb.Length);
sb.Append(“[{server:'").Append(dbserver) //服务器地址
.Append("',count:'").Append(ipList.Count) //IP条数
.Append("',insertNum:0") //本次插入条数
.Append(",taskNum:0") //任务队列条数
.Append("}]“);
context.Session["ip_info"]=sb.ToString();
//触发父页面开始插入数据
context.Response.Write(“<script>window.parent.insertIP();</script>”);
}
else
{
using (SqlConnection conn=new SqlConnection(context.Session["ip_dbconnstring"] as string))
{
string tbname=context.Session["ip_tablename"] as string;
//初始化,建表并返回信息
if (action==“init”)
{
SqlCommand cmd=new SqlCommand(“if not exists(select * from sysobjects where [name]='” + tbname +
“‘ and xtype='u')BEGIN CREATE TABLE ” + tbname + “(id BIGINT PRIMARY KEY IDENTITY(1,1),sip NVARCHAR(15),eip NVARCHAR(15),area NVARCHAR(80),[name] NVARCHAR(80))END”, conn);
conn.Open();
cmd.ExecuteNonQuery();
context.Response.Write(context.Session["ip_info"]);
}
//插入数据
else if (action==“insert”)
{
IList<string> ipList=HttpRuntime.Cache["ip_data"] as IList<string>;
StringBuilder sb=new StringBuilder(400);
//默认每次插入300条
int insertNum;
int.TryParse(context.Request["num"], out insertNum);
if (insertNum < 1) insertNum=300;
SqlCommand cmd=new SqlCommand();
cmd.Parameters.AddRange(
new SqlParameter[]{
new SqlParameter(“@sip”,null),
new SqlParameter(“@eip”,null),
new SqlParameter(“@area”,null),
new SqlParameter(“@name”,null)
});
cmd.Connection=conn;
conn.Open();
string[] arr;
for (var i=0; i <=insertNum && i < ipList.Count; i++)
{
arr=ipList[i].Split(‘ ‘);
cmd.CommandText=“if not exists(select id from ” + tbname +
” where sip='”+arr[0]+”‘and eip='”+arr[1]+”‘) INSERT INTO ” + tbname +
” values(@sip,@eip,@area,@name)”;
cmd.Parameters["@sip"].Value=arr[0];
cmd.Parameters["@eip"].Value=arr[1];
cmd.Parameters["@area"].Value=arr[2];
cmd.Parameters["@name"].Value=arr.Length>=4?arr[3]:”";
sb.Remove(0, sb.Length);
cmd.ExecuteNonQuery();
ipList.Remove(ipList[i]);
}
sb.Remove(0, sb.Length);
sb.Append(“[{count:").Append(ipList.Count) //未插入IP的条数
.Append(",insertNum:").Append(insertNum)
.Append("}]“);
context.Response.Write(sb.ToString());
}
}
}
}
}
}
关于asp.net下将纯真IP数据导入数据库中的代码的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
