Проблема
что я пишу внутри цикла, чтобы отобразить аналогичный код элемента в 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();