我有一个.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))插入EmailData(EmailId)值(@Ema)要求提供参数'@Email',但未提供。

最佳答案

cmd.Parameters.Add("@Email",SqlDbType.NVarChar,250,"EmailId");


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

关于c# - 使用Asp.net C#中的文件上传功能将数据从.csv导入SQL Server,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20408424/

10-13 07:58
查看更多