private void butCheck_Click(object sender, EventArgs e) { var props = new SqlProps(ServerName.Text, DatabaseName.Text, Identification != "Windows", Login.Text, Password.Text); try { SqlDb.Connect(ServerName.Text, DatabaseName.Text, Identification != "Windows", Login.Text, Password.Text).Close(); } catch (Exception ex) { MessageBox.Show("Соединение не установлено\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } try { if (AdditionalCheck != null && !AdditionalCheck(props)) { MessageBox.Show("Соединение не установлено", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { MessageBox.Show("Успешное соединение", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show("База данных не является архивом результатов или к ней нет доступа" + "\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
//Ридер для SQL Server, timeout - ограничение времени на команду, сек public ReaderAdo(SqlProps props, string stSql, int timeout = 300) { _useDb = false; _props = props; DatabaseType = DatabaseType.SqlServer; _connection = SqlDb.Connect(props); OpenReader(stSql, _connection, timeout); }
//Запись из себя через SqlBulkCopy public void Update() { using (var con = SqlDb.Connect(_props)) using (var loader = new SqlBulkCopy(con) { DestinationTableName = _tabl, BulkCopyTimeout = 200000 }) loader.WriteToServer(_starter); }
//stSql - строка запроса, props - свойства соединения public DataSetSql(SqlProps props, string stSql) { _con = SqlDb.Connect(props); _adapter = new SqlDataAdapter(stSql, _con) { SelectCommand = { CommandTimeout = 100000 } }; new SqlCommandBuilder(_adapter); Reload(); }
//Ридер для SQL Server public AdoReader(SqlProps props, //Настройки соединения с SQL string stSql, //запрос int timeout = 300) //ограничение времени на команду, сек { _useDb = false; _props = props; DatabaseType = DatabaseType.SqlServer; _connection = SqlDb.Connect(props); OpenReader(stSql, _connection, timeout); }
//Количество записей, на входе строка запроса-комманды Count public int RecordCount(string stSql) { if (stSql.IsEmpty()) { throw new NullReferenceException("Строка запроса не может быть пустой строкой или null"); } switch (DatabaseType) { case DatabaseType.Access: var cmdo = new OleDbCommand(stSql, DaoDb.Connection); return((int)cmdo.ExecuteScalar()); case DatabaseType.SqlServer: var cmds = new SqlCommand(stSql, SqlDb.Connect(_props)) { CommandTimeout = 120 }; return((int)cmds.ExecuteScalar()); } return(0); }
public SqlInserter(SqlProps props, string table) { _sqlProps = props; _connection = SqlDb.Connect(props); _table = table; }