Ошибка: не удается неявно преобразовать тип 'string' в 'int?' / получить эту ошибку при создании этапа ad users ,
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.IO; using System.Windows.Forms; using System.DirectoryServices; using System.Collections; using Microsoft.VisualBasic.FileIO; namespace ADBulkImport { public partial class frmBulkImport : Form { public frmBulkImport() { InitializeComponent(); } private void btnBulkImport_Click(object sender, EventArgs e) { //Path to main OU string strPath = "LDAP://OU=Test Students,OU=Users,OU=Client Services,DC=esc,DC=local"; //reading csv string csvFilePath = @"T:\jake\Account creator messing\test files\StudentAccount.csv"; TextFieldParser csvReader = new TextFieldParser(csvFilePath); csvReader.SetDelimiters(new string[] { "," }); csvReader.HasFieldsEnclosedInQuotes = true; // reading column fields string[] colFields = csvReader.ReadFields(); string index_GivenName = colFields.ToList().IndexOf("GivenName").ToString(); string index_Surname = colFields.ToList().IndexOf("Surname").ToString(); string index_samaccountName = colFields.ToList().IndexOf("samAccountName").ToString(); int index_ID = colFields.ToList().IndexOf("ID"); string index_Course = colFields.ToList().IndexOf("Course").ToString(); while (!csvReader.EndOfData) { try { string st = File.ReadAllText(csvFilePath); Console.WriteLine(st); DirectoryEntry objDEOU = new DirectoryEntry(strPath); ArrayList objUserList = new ArrayList(); DirectoryEntry objDEUser = new DirectoryEntry(strPath); string email = index_ID + "@student.esc.ac.uk"; var strUserName = index_GivenName + index_Surname + index_ID; DirectoryEntry objUser = objDEUser.Children.Add("CN=" + strUserName, "user"); //DirectoryEntry objUser = ouEntry.Children.Add("CN=" + csvData[index_samaccountName], "user"); var csvData = csvReader.ReadFields(); var fieldData = csvReader.ReadFields(); <code></code> DirectoryEntry ouEntry = new DirectoryEntry(strPath); //User Name // DirectoryEntry objUser = objDEUser.Children.Add("CN=" + strUserName, "user"); //objUser.Properties["samaccountname"].Value = csvData[index_GivenName + index_Surname + index_ID]; MessageBox.Show(csvData[index_samaccountName]); // User name (domain based) objUser.Properties["userprincipalname"].Value = csvData[index_samaccountName].ToString(); // User name (older systems) objUser.Properties["samaccountname"].Value = csvData[index_GivenName + index_Surname + index_ID]; // Surname objUser.Properties["sn"].Value = csvData[index_Surname].ToString; // Forename objUser.Properties["givenname"].Value = csvData[index_GivenName]; // Display name objUser.Properties["displayname"].Value = csvData[index_GivenName + index_Surname + index_ID]; // Description objUser.Properties["description"].Value = csvData[index_Course]; // E-mail //objUser.Properties["mail"].Value = csvData(index_ID + "@student.esc.ac.uk"); objUser.CommitChanges(); objDEUser.CommitChanges(); //Password objUser.Invoke("SetPassword", new object[] { "second@123" }); objUser.CommitChanges(); //Adding created user to list objUserList.Add(strUserName); MessageBox.Show("10"); MessageBox.Show("Process Completed..."); } catch (Exception ex) { MessageBox.Show(ex.Message); MessageBox.Show("Failed ..."); Console.WriteLine(ex.ToString()); Console.WriteLine(System.Runtime.InteropServices.Marshal.GetExceptionCode()); } } } } }
Что я уже пробовал:
Я могу создать пользователя, если назначу свойства текстам, например "имя", но когда я пытаюсь использовать csv-файл, ему не нравится строка.