C # — что я пишу внутри цикла для отображения аналогичного кода элемента в datagridview и вставки другого кода элемента на сервере базы данных SQL

проблема

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

Таблица элементов базы данных SQL Server (2014)

ItemCode(pk)             ItemName

001                       mouse

002                       keyboard

003                       Headphone

В файле Excel лист 2010

ItemCode                     ItemName

001                           mouse

002                           keyboard

004                           screen

005                           Ram

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

в базе данных сервера sql и в элементах Exist Items On Database и Found в Excel не вставлять, а отображать в datagridview.

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

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

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

мой код (внутри цикла)

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();

0

Решение

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

0

Другие решения

Других решений пока нет …