2013-12-05 1 views
2

У меня есть. CSV-файл, который я загружаю через элемент управления FileUpload, и я хочу передать все данные из этого CSV-файла в базу данных SQL Server стол, но у меня есть некоторые проблемы в моем коде:Импорт данных из .csv в SQL Server с использованием загрузки файлов в Asp.net C#

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', который не был указан.

ответ

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

Имя столбца, добавленного к DataTable был EmailId, не Email.

+0

Thnk you Michael. Можете ли вы, пожалуйста, помочь мне еще одну вещь в следующих двух строках: string [] fields = csvParser.ReadFields(); tblReadCSV.Rows.Add (fields.Equals («Email»)); поля содержат список заголовков файлов csv, теперь я просто хочу только поле электронной почты, как я могу достичь thi, выше строки для этого не работает ... – user3071613

+0

@ user3071613, комментарии здесь не будут правильным. Просто задайте другой вопрос другим вопросом. –

+0

ok michael Я добавил это как еще один вопрос, любезно ответьте на этот вопрос – user3071613

Смежные вопросы