【问题标题】:Import Data from .csv to SQL Server using File Upload in Asp.net C#使用 Asp.net C# 中的文件上传将数据从 .csv 导入 SQL Server
【发布时间】:2013-12-05 19:04:19
【问题描述】:

我有一个 .csv 文件,我通过 FileUpload 控件上传它,我想将整个数据从该 csv 文件传输到 SQL Server 数据库表中,但我的代码存在一些问题:

 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.Equals("Email"));
    }
    string connection = @"Data Source=ANURAG-PC; Initial Catalog=MailServer; Persist Security Info=True; User ID=sa; Password=anurag";
    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,"Email");
    SqlDataAdapter daAdapter=new SqlDataAdapter();
    daAdapter.InsertCommand=cmd;
    int result=daAdapter.Update(tblReadCSV);
    lblError.Text="Send Successfully";

我在倒数第二行遇到错误

int result = daAdapter.Update(tblReadCSV);

错误是

参数化查询 '(@Email nvarchar(250))Insert into EmailData(EmailId) Values(@Ema' 需要参数 '@Email',但未提供。

【问题讨论】:

    标签: c# asp.net .net c#-4.0 csv


    【解决方案1】:
    cmd.Parameters.Add("@Email",SqlDbType.NVarChar,250,"EmailId");
    

    您添加到DataTable 的列的名称是EmailId,而不是Email

    【讨论】:

    • 谢谢迈克尔,请您帮我做一件事,在以下两行中 - string[] fields = csvParser.ReadFields(); tblReadCSV.Rows.Add(fields.Equals("Email"));字段包含 csv 文件的标题列表现在我只想要电子邮件字段我如何实现这一点,上面的行不起作用...
    • @user3071613,cmets 在这里不是正确的方法。只需将另一个问题详细说明为另一个问题。
    • ok michael 我已将其添加为另一个问题,请回答该问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多