【发布时间】:2013-12-05 19:51:00
【问题描述】:
具有 20 列的 csv 文件,我已经使用 FileUpload Control 上传了该文件,现在我只想从这 20 列中在数据库中添加一列数据,我该如何实现这一点.. 我的代码是-
DataTable tblReadCSV = new DataTable();
tblReadCSV.Columns.Add("EmailId");
string path = System.IO.Path.GetFileName(fupEmails.PostedFile.FileName);
fupEmails.PostedFile.SaveAs(Server.MapPath("~/Contacts/" + path));
path = Server.MapPath("~/Contacts/" + path);
TextFieldParser csvParser = new TextFieldParser(path);
csvParser.Delimiters = new string[] { "," };
csvParser.TrimWhiteSpace = true;
//csvParser.ReadLine();
while (!csvParser.EndOfData)
{
string[] fields = csvParser.ReadFields();
tblReadCSV.Rows.Add(fields.);
}
string connection = @"Data Source=ANURAG-PC; Initial Catalog=MailServer; Persist Security Info=True; User ID=xx; Password=xxxxxx";
string strSql = "Insert into EmailData(EmailId) Values(@Email)";
SqlConnection con=new SqlConnection(connection);
SqlCommand cmd=new SqlCommand();
cmd.CommandType=CommandType.Text;
cmd.CommandText=strSql;
cmd.Connection=con;
cmd.Parameters.Add("@Email",SqlDbType.NVarChar,250,"EmailId");
SqlDataAdapter daAdapter=new SqlDataAdapter();
daAdapter.InsertCommand=cmd;
int result=daAdapter.Update(tblReadCSV);
lblError.Text="Send Successfully";
问题出在这三行——
while (!csvParser.EndOfData)
{
string[] fields = csvParser.ReadFields();
tblReadCSV.Rows.Add(fields.Equals("Email");
}
这里的字段包含所有的列标题,所以我只想要一个字段的电子邮件,我怎么能做到这一点,上面的行不适用于这个。
【问题讨论】:
-
我认为在互联网上发布(在您的连接字符串中)您的用户名和密码是不明智的。即使它在SO上。我已经把它们“x'd”了。
标签: c# asp.net .net c#-4.0 csv