csv如何导入到数据库,请高手们帮帮小弟 我现在把csv文件上传到web服务器上了,现在不知道如何导入到数据库中,请高手们帮帮忙,最好有源码。谢谢~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #region 上传需要导入的文件 /// <summary> /// 上传需要导入的文件 /// </summary> /// <returns></returns> private bool SaveFile() { if(File_LinkmanTxt.Value != String.Empty) { System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(".csv",System.Text.RegularExpressions.RegexOptions.IgnoreCase); if (!regex.IsMatch(File_LinkmanTxt.Value.Substring(File_LinkmanTxt.Value.LastIndexOf(".")))) { GZEEMAIL.Utilities.Utilities.MsgBox("请注意你的导入文件格式,必须为.CSV文件!"); return false; } string fileName = System.IO.Path.GetFileName(File_LinkmanTxt.PostedFile.FileName); fileName = BuildPath(fileName); ImportFilePath = fileName; try { File_LinkmanTxt.PostedFile.SaveAs(fileName); return true; } catch { return false; } } else { return false; } } #endregion #region 够造文件的上传路径 /// <summary> /// 够造文件的上传路径 /// </summary> /// <param name="m_FileName"></param> /// <returns></returns> private string BuildPath(string m_FileName) { string fileExtName = m_FileName.Substring(m_FileName.LastIndexOf("\\")+1,(m_FileName.Length - m_FileName.LastIndexOf("\\")-1)); switch (fileExtName) { case "a": { break; } } string filePath = this.Page.Server.MapPath(MailDAL.MailConnection.FILEUPLOAD_DB) ; filePath += "\\"; filePath += DateTime.Now.ToFileTimeUtc(); filePath += fileExtName ; return filePath ; } #endregion #region 导入联系人 /// <summary> /// 导入联系人 /// </summary> /// <param name="filePath"></param> /// <returns></returns> private bool ImportLinkMan(string filePath) { StreamReader sr = new StreamReader(filePath,System.Text.Encoding.GetEncoding("GB2312")); string linkText; string[] FieldText = null; int userCode = Communal.GetUserID; MailModel.AddressList addr = new MailModel.AddressList(); DataRow row; while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它 { if ( sr.Peek() == 1) continue; row = addr.Tables[0].NewRow(); linkText = sr.ReadLine(); FieldText = linkText.Split(','); row["UserName"] = FieldText[0]; row["CompanyName"] = FieldText[1]; row["Depart"] = FieldText[2]; row["Station"] = FieldText[3]; row["Email"] = FieldText[4]; row["TelPhone"] = FieldText[5]; row["HandPhone"] = FieldText[7]; row["FamilyAddress"] = FieldText[11] + FieldText[12]; row["UserID"] = userCode; addr.Tables[0].Rows.Add(row); } sr.Close(); using( AddressListDAL addrDAL = new AddressListDAL()) { addr.Tables[0].Rows.Remove( addr.Tables[0].Rows[0]); if( addrDAL.Insert( addr,out userCode) ) { try { File.Delete( ImportFilePath ); return true; } catch { return true; } } else { return false; } } } #endregion private void btn_Import_Click(object sender, System.EventArgs e) { if( SaveFile()) { if(ImportLinkMan( ImportFilePath )) { GZEEMAIL.Utilities.Utilities.MsgBox("联系人导入成功!"); Response.Redirect("percommbook.aspx?groupid= -1 " ); } else { GZEEMAIL.Utilities.Utilities.MsgBox("联系人导入失败!"); } } else { GZEEMAIL.Utilities.Utilities.MsgBox("读取文件失败,请重新获取文件!"); } } 其中 File_FileName为File控件,MailDAL.MailConnection.FILEUPLOAD_DB 就是存放文件的虚拟路径 你自己应该修改 、数据库插入操作你根据自己的需要更改while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它 { if ( sr.Peek() == 1) continue; row = addr.Tables[0].NewRow(); linkText = sr.ReadLine(); FieldText = linkText.Split(','); row["UserName"] = FieldText[0]; row["CompanyName"] = FieldText[1]; row["Depart"] = FieldText[2]; row["Station"] = FieldText[3]; row["Email"] = FieldText[4]; row["TelPhone"] = FieldText[5]; row["HandPhone"] = FieldText[7]; row["FamilyAddress"] = FieldText[11] + FieldText[12]; row["UserID"] = userCode; addr.Tables[0].Rows.Add(row); } sr.Close();这一段是关键 关于缓存,substitution控件,有实际应用吗?缓存的页面多了也不一定好,个人认为 网页自动保存 请问session超期后自动跳转到登陆页,这个可以在web.config里配置吗? 求网上书店的源代码? 求怎么样返回结构数组问题 代码IsPostBack起什么作用 才鸟问题 急急急~~~ 在线等。。。。。。。。 C# 如何释放委托 getredirecturl?? 关于程序执行顺序问题!? 一个简单问题:代码中,如何将 文件上传控件File Field 置空,解决马上给分! MetaBuilders中RowSelectorColumn的问题,谁用过啊?
/// <summary>
/// 上传需要导入的文件
/// </summary>
/// <returns></returns>
private bool SaveFile()
{
if(File_LinkmanTxt.Value != String.Empty)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(".csv",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (!regex.IsMatch(File_LinkmanTxt.Value.Substring(File_LinkmanTxt.Value.LastIndexOf("."))))
{
GZEEMAIL.Utilities.Utilities.MsgBox("请注意你的导入文件格式,必须为.CSV文件!");
return false;
}
string fileName = System.IO.Path.GetFileName(File_LinkmanTxt.PostedFile.FileName);
fileName = BuildPath(fileName);
ImportFilePath = fileName;
try
{
File_LinkmanTxt.PostedFile.SaveAs(fileName);
return true;
}
catch
{
return false;
}
}
else
{
return false;
}
}
#endregion #region 够造文件的上传路径
/// <summary>
/// 够造文件的上传路径
/// </summary>
/// <param name="m_FileName"></param>
/// <returns></returns>
private string BuildPath(string m_FileName)
{
string fileExtName = m_FileName.Substring(m_FileName.LastIndexOf("\\")+1,(m_FileName.Length - m_FileName.LastIndexOf("\\")-1));
switch (fileExtName)
{
case "a":
{
break;
}
}
string filePath = this.Page.Server.MapPath(MailDAL.MailConnection.FILEUPLOAD_DB) ;
filePath += "\\";
filePath += DateTime.Now.ToFileTimeUtc();
filePath += fileExtName ;
return filePath ;
}
#endregion #region 导入联系人 /// <summary>
/// 导入联系人
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
private bool ImportLinkMan(string filePath)
{
StreamReader sr = new StreamReader(filePath,System.Text.Encoding.GetEncoding("GB2312"));
string linkText;
string[] FieldText = null;
int userCode = Communal.GetUserID;
MailModel.AddressList addr = new MailModel.AddressList();
DataRow row;
while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它
{
if ( sr.Peek() == 1)
continue;
row = addr.Tables[0].NewRow();
linkText = sr.ReadLine();
FieldText = linkText.Split(',');
row["UserName"] = FieldText[0];
row["CompanyName"] = FieldText[1];
row["Depart"] = FieldText[2];
row["Station"] = FieldText[3];
row["Email"] = FieldText[4];
row["TelPhone"] = FieldText[5];
row["HandPhone"] = FieldText[7];
row["FamilyAddress"] = FieldText[11] + FieldText[12];
row["UserID"] = userCode;
addr.Tables[0].Rows.Add(row);
}
sr.Close();
using( AddressListDAL addrDAL = new AddressListDAL())
{
addr.Tables[0].Rows.Remove( addr.Tables[0].Rows[0]);
if( addrDAL.Insert( addr,out userCode) )
{
try
{
File.Delete( ImportFilePath );
return true;
}
catch
{
return true;
}
}
else
{
return false;
}
}
}
#endregion private void btn_Import_Click(object sender, System.EventArgs e)
{
if( SaveFile())
{
if(ImportLinkMan( ImportFilePath ))
{
GZEEMAIL.Utilities.Utilities.MsgBox("联系人导入成功!");
Response.Redirect("percommbook.aspx?groupid= -1 " );
}
else
{
GZEEMAIL.Utilities.Utilities.MsgBox("联系人导入失败!");
}
}
else
{
GZEEMAIL.Utilities.Utilities.MsgBox("读取文件失败,请重新获取文件!");
}
}
{
if ( sr.Peek() == 1)
continue;
row = addr.Tables[0].NewRow();
linkText = sr.ReadLine();
FieldText = linkText.Split(',');
row["UserName"] = FieldText[0];
row["CompanyName"] = FieldText[1];
row["Depart"] = FieldText[2];
row["Station"] = FieldText[3];
row["Email"] = FieldText[4];
row["TelPhone"] = FieldText[5];
row["HandPhone"] = FieldText[7];
row["FamilyAddress"] = FieldText[11] + FieldText[12];
row["UserID"] = userCode;
addr.Tables[0].Rows.Add(row);
}
sr.Close();这一段是关键