Member 14199944 Ответов: 1

Ошибка: не удается неявно преобразовать тип '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-файл, ему не нравится строка.

1 Ответов

Рейтинг:
0

OriginalGriff

Мы не можем сказать - он должен работать с вашим кодом и вашими данными, чтобы узнать, что происходит.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем этого сделать для вас - пришло время освоить новый (и очень, очень полезный) навык: отладку!