日期:2014-05-18  浏览次数:20490 次

asp.net导入数据库问题
各位大虾有谁知道怎样把文件导入到数据库里面
比如:文件里面有很多文件每一个文件都要对应到数据库表里面,相当于树结构
如果我没解释清楚的请加我QQ654982114


------解决方案--------------------
确实没说清楚
------解决方案--------------------
确实没有说清楚,

文件怎么可能随便就导入数据库?

文件里面有很多文件
=======
如此诡异的文件?
------解决方案--------------------
文件里面有很多文件?
现在想在加个文件进去?
头都被你搞晕了。

------解决方案--------------------
String tempStr=inputFile.PostedFile.FileName;

String fName=tempStr.Substring(tempStr.LastIndexOf( '\\ ')+1);
int length =tempStr.LastIndexOf( '\\ ')+1;

//另存到本地
inputFile.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings[ "CsvPath "])+fName);


//以行为单位
ArrayList Al=new ArrayList();
ArrayList Sl=new ArrayList();

//读取副本得到记录数
String line= " ";
StreamReader sr=new StreamReader(System.Web.HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings[ "CsvPath "])+fName,System.Text.Encoding.Default);
while(((line = sr.ReadLine()) != null))
{
if(line.StartsWith( "型号 ")!=true)
{
String newline=line.Replace( '\ ' ', ' ');
Al.Add(newline);
}
}


//存入文件表并返回文件ID

SqlDataLayer dl=new SqlDataLayer();


int fileid=dl.AddDataFile(fName,Al.Count,UserID,tempStr);

//建立插入语句
try
{

for(int i=0;i <Al.Count;i++)
{
//以列为单位


string frontStr= "insert into stock ( ";
string blackStr= ") values ( ' ";

String[] C=Al[i].ToString().Split( ', ');



ArrayList newal=new ArrayList();


if(C[0].Trim()== " "||C[0]== "型号 ")
Al.RemoveAt(0);

//处理双引号行
Boolean flag=false;
StringBuilder sb=new StringBuilder();
Boolean addflag=false;

for(int j=0;j <C.Length;j++)
{

if(C[j].StartsWith( "\ " ")||C[j].EndsWith( "\ " "))
{
if(flag==true) flag=false;
else flag=true;
addflag=false;
}

if(addflag==true) newal.Add(C[j]);
else
{
if(flag==true)
{
sb.Append(C[j].TrimStart( '\ " '));
sb.Append( ", ");
addflag=false;
}
else
{
sb.Append(C[j].TrimEnd( '\ " '));
newal.Add(sb.ToString());
sb.Remove(0,sb.Length);
addflag=true;
}
}
}

String[] S=new String[14];
for(int k=0;k <newal.Count;k++)
{
S[k]=newal[k].ToString();
}


if(newal.Count <14)
{


//int itemcount=0;
if(one)
{
frontStr+= "partno, ";
//blackStr+= " "+S[itemcount++]+ " ', ";
blackStr+= " "+S[0]+ " ', ";
}
if(two)
{
frontStr+= "qty, ";