//выполнить Drop table public void DropTable() { try { //находим имя таблицы, из которой делаем выборку даных String table = TreeHelper.FindCreateTableName(f.treeView.Nodes[0]); ds.Tables.Remove(table); f.resultBox.Text += ">Ок"; } catch (Exception e) { f.resultBox.Text += ">" + e.Message + Environment.NewLine; } }
//выполнить Create table public void CreateTable() { try { //находим имя таблицы, из которой делаем выборку даных String table = TreeHelper.FindCreateTableName(f.treeView.Nodes[0]); //находим столбцы List <CreateTableColumn> columns = TreeHelper.FindCreateTableColumns(f.treeView.Nodes[0]); //создаем DataTable DataTable newTable = new DataTable(); newTable.TableName = table; //создаем поля for (int i = 0; i < columns.Count; i++) { CreateTableColumn cl = columns[i]; DataColumn newColumn = new DataColumn(); newColumn.ColumnName = cl.Column_name; switch (cl.ColumnType) { case "int": newColumn.DataType = System.Type.GetType("System.Int32"); break; case "integer": newColumn.DataType = System.Type.GetType("System.Int32"); break; case "char": newColumn.DataType = System.Type.GetType("System.String"); break; case "number": newColumn.DataType = System.Type.GetType("System.Decimal"); break; case "datetime": newColumn.DataType = System.Type.GetType("System.DateTime"); break; default: newColumn.DataType = System.Type.GetType("System.String"); break; } newTable.Columns.Add(newColumn); } ds.Tables.Add(newTable); f.resultBox.Text += ">Ок"; } catch (Exception e) { f.resultBox.Text += ">" + e.Message + Environment.NewLine; } }
//выполнить Delete public void Delete() { try { //находим имя таблицу, из которой делаем выборку даных String tableName = TreeHelper.FindCreateTableName(f.treeView.Nodes[0]); DataTable tbl = ds.Tables[tableName]; //условие отбора строk для удаления string where = th.FindWhere(); DataRow[] foundRows = tbl.Select(where); for (int i = 0; i < foundRows.Length; i++) { foundRows[i].Delete(); } f.resultBox.Text += ">Ок"; } catch (Exception e) { f.resultBox.Text += ">" + e.Message + Environment.NewLine; } }
//выполнить Update public void Update() { try { CultureInfo provider = CultureInfo.InvariantCulture; //находим имя таблицу, из которой делаем выборку даных String tableName = TreeHelper.FindCreateTableName(f.treeView.Nodes[0]); DataTable tbl = ds.Tables[tableName]; //условие отбора стро для удаления string where = th.FindWhere(); //находим столбцы List <string> columns = TreeHelper.FindUpdateColumns(f.treeView.Nodes[0]); //значения столбцов List <string> values = TreeHelper.FindUpdateValues(f.treeView.Nodes[0]); DataRow[] foundRows = tbl.Select(where); //Обновляем отобранные строки for (int i = 0; i < foundRows.Length; i++) { for (int j = 0; j < columns.Count; j++) // цикл по обновляемым полям { if (tbl.Columns[columns[j]].DataType == System.Type.GetType("System.String")) { foundRows[i][columns[j]] = values[j].Replace("'", ""); //удаляем лишние одинарные кавычки } else if (tbl.Columns[columns[j]].DataType == System.Type.GetType("System.DateTime")) { try { foundRows[i][columns[j]] = DateTime.ParseExact(values[j].Replace("'", ""), "dd.MM.yyyy HH:mm", provider); //преобразуем строку в дату } catch { try { foundRows[i][columns[j]] = DateTime.ParseExact(values[j].Replace("'", ""), "dd.MM.yyyy HH", provider); //преобразуем строку в дату } catch { foundRows[i][columns[j]] = DateTime.ParseExact(values[j].Replace("'", ""), "dd.MM.yyyy", provider); //преобразуем строку в дату } } } else { if (tbl.Columns[columns[j]].DataType == System.Type.GetType("System.Decimal")) { foundRows[i][columns[j]] = Convert.ToDecimal(values[j], new CultureInfo("en-US")); } else { foundRows[i][columns[j]] = values[j]; } } } } f.resultBox.Text += ">Ок"; } catch (Exception e) { f.resultBox.Text += ">" + e.Message + Environment.NewLine; } }
//выполнить Insert public void Insert() { try { CultureInfo provider = CultureInfo.InvariantCulture; //находим имя таблицу, из которой делаем выборку даных String tableName = TreeHelper.FindCreateTableName(f.treeView.Nodes[0]); DataTable tbl = ds.Tables[tableName]; //находим столбцы List <string> columns = TreeHelper.FindInsertColumns(f.treeView.Nodes[0]); //значения столбцов List <string> values = TreeHelper.FindInsertValues(f.treeView.Nodes[0]); // вставляем строку { DataRow row = tbl.NewRow(); for (int i = 0; i < columns.Count; i++) { if (tbl.Columns[i].DataType == System.Type.GetType("System.String")) { row[columns[i]] = values[i].Replace("'", ""); //удаляем лишние одинарные кавычки } else if (tbl.Columns[i].DataType == System.Type.GetType("System.DateTime")) { try { row[columns[i]] = DateTime.ParseExact(values[i].Replace("'", ""), "dd.MM.yyyy HH:mm:ss", provider); //преобразуем строку в дату } catch { try { row[columns[i]] = DateTime.ParseExact(values[i].Replace("'", ""), "dd.MM.yyyy HH:mm", provider); //преобразуем строку в дату } catch { try { row[columns[i]] = DateTime.ParseExact(values[i].Replace("'", ""), "dd.MM.yyyy HH", provider); //преобразуем строку в дату } catch { row[columns[i]] = DateTime.ParseExact(values[i].Replace("'", ""), "dd.MM.yyyy", provider); //преобразуем строку в дату } } } } else { if (tbl.Columns[i].DataType == System.Type.GetType("System.Decimal")) { row[columns[i]] = Convert.ToDecimal(values[i], new CultureInfo("en-US")); } else { row[columns[i]] = values[i]; } } } tbl.Rows.Add(row); f.resultBox.Text += ">Ок"; } catch (Exception e) { f.resultBox.Text += ">" + e.Message + Environment.NewLine; } }