2012-06-04 3 views
0

Я в основном ищу некоторые идеи о том, как лучше всего построить код для чтения файла excel и создания учетных записей пользователей.C# - читать из листа excel и передавать переменные в функцию

У меня уже есть код, как для чтения файла excel, так и для создания учетных записей, однако я не уверен относительно наилучшего способа передачи данных с листа excel в функцию «CreateUser».

Любая помощь приветствуется.

Cheers.

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.OleDb; 
using System.Data.SqlClient; 
using System.IO; 

namespace INB201_SAMS.Admin 
{ 
    public partial class UploadList : System.Web.UI.Page 
    { 
     protected void UploadButton_Click(object sender, EventArgs e) 
     { 
      var upload = Path.Combine(Server.MapPath("~/upload"), "myfilename.xlsx"); 
      CSVUpload.SaveAs(upload); 

      var excelConString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0", upload); 

      using (OleDbConnection con = new OleDbConnection(excelConString)) 
      { 
       con.Open(); 

       OleDbCommand com = new OleDbCommand("Select * from [UserUpload$]", con); 

       OleDbDataReader dr = com.ExecuteReader(); 



      } 

      File.Delete(upload); 

      Response.Write("Upload Successfull!"); 

     } 



     protected bool CreateUser(string UsersUsername, string UsersPassword) 
     { 

      try 
      { 
       MembershipUser newUser = System.Web.Security.Membership.CreateUser(UsersUsername, UsersPassword); 
       Roles.AddUserToRole(UsersUsername, "student"); 
       return true; 
      } 

      catch (Exception ex) 
      { 
       MessageYo.Text = ex.ToString(); 
       return false; 
      } 

     } 
    } 
} 
+0

Требуется 'System.Web.UI.Page'. Не можете ли вы просто использовать 'Page', поскольку вы используете System.Web.UI? –

+0

Я знаю, что я не называл CreateUser - я просто написал то, что знал – mitchimus

+0

Вы говорите, что (новая) информация об учетной записи пользователя является в файле Excel, который вы успешно извлеките, и что теперь вам нужно передать его методу CreateUser()? –

ответ

2

Вот что-то реальное просто:

while(dr.Read()) { 
    string user = dr[0].ToString(); 
    string pass = dr[1].ToString(); 
    if(!String.IsNullOrWhiteSpace(user) && !String.IsNullOrWhiteSpace(pass)) 
     CreateUser(user, pass) 
} 
dr.Close() 
+0

Точно, что я был после - работает отлично :) – mitchimus

1

Я предполагаю, что ваше имя пользователя и UserPassword в два столбца. В таком случае. вы можете прочитать конкретный столбец Excel своими конкретными заголовками. Это обсуждение этого вопроса: http://social.msdn.microsoft.com/Forums/en-US/exceldev/thread/6506b0b1-be8c-40f9-879f-21715bd2792e. Затем вы можете передать значения функции.

Обходной путь для этого: go through XML file, что означает преобразование Excel в XML, а затем получение данных из xml для работы.

+0

Спасибо, помощник - скоро вернусь :) – mitchimus

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