что я пишу внутри цикла, чтобы отобразить аналогичный код элемента в datagridview и вставить другой код элемента на сервере базы данных sql - PullRequest
0 голосов
/ 26 сентября 2018

Проблема

что я пишу внутри цикла, чтобы отобразить аналогичный код элемента в datagridview и вставить другой код элемента на базу данных sql server.

База данных SQL Server (2014) ЭлементыТаблица

ItemCode(pk)             ItemName  

001                       mouse

002                       keyboard

003                       Headphone

В файле Excel Excel 2010

ItemCode                     ItemName  

001                           mouse

002                           keyboard

004                           screen

005                           Ram

На самом деле мне нужно при импорте файла Excel вставить различные элементы кода, которые не существуют

в базе данных сервера SQL и существоватьЭлементы в базе данных и найденные в Excel не вставляются, но отображаются в сетке данных.

в соответствии с моим делом вставьте коды элементов 004,005 в таблицу элементов.

и покажите 001,002 в виде сетки как существующие элементы.

моя функция, как показано ниже

мой код (Inside Loop)

public static void ImportFromExcelToDataBase()
    {
       Datatable dt = ShowExcelData();
       DataTable dtItems = GetSqlItems();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //what i write here 
                // if itemcode exist on excel exist on sql server database
                then display similar items exist on database and excel as 001,002 on datagridview
                //else 
                 // do insert data
                string Insert = "Insert Into Values (" + data + ")";
                DataAccess.ExecuteNonQuery(Insert);
            }

    }
 public DataTable ShowExcelData()
        {
            string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", txtpath.Text);

            OleDbConnection con = new OleDbConnection(connectionString);


            con.Open();
            DataTable dt = new DataTable();

            dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

            string SheetName = dt.Rows[0]["TABLE_NAME"].ToString();


            OleDbCommand com = new OleDbCommand();
            com.Connection = con;

            com.CommandText = @"SELECT  [ItemCode],[ItemsName],[ItemAddress] FROM  [" + SheetName + "] ";
            OleDbDataAdapter oledbda = new OleDbDataAdapter();
            oledbda.SelectCommand = com;
            DataSet ds = new DataSet();
            oledbda.Fill(ds);
            dt = ds.Tables[0];
            con.Close();
            return dt;


        }
dt = ShowExcelData();

 public DataTable GetSqlItems()
        {
            string GetItems = @"select ItemCode,ItemsName,ItemAddress from Items";


           DataTable tbGetItems = DataAccess.ExecuteDataTable(GetItems );
            return tbGetItems ;
        }
dtItems = GetSqlItems();

1 Ответ

0 голосов
/ 26 сентября 2018

сделать ItemCode первичным ключом, ваша команда потерпит неудачу, а затем, конечно, вы узнаете, какие существуют элементы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...