По сути, я создаю приложение репликации, и мне просто нужно выяснить размер базы данных и сколько свободного места у меня есть на диске D:\.
Если размер базы данных превышает свободное место, мне нужно предупредить пользователя.
Вот что у меня есть:
Сначала я узнаю, сколько свободного места на диске D.
DriveInfo di = new DriveInfo(@"D:\");
if (di.IsReady)
{
freeSpace = di.TotalFreeSpace;
}
Затем я получаю размер базы данных, которую собираюсь реплицировать:
dbSize = Database.GetDatabaseSize(ddlPublisherServer.Text, ddlPublisherDatabase.Text);
Вот метод, позволяющий получить размер БД. Я не знаю, есть ли лучший способ сделать это, но размер содержит строку «МБ», поэтому мне нужно ее удалить.
public static long GetDatabaseSize(string server, string database)
{
string finalConnString = Properties.Settings.Default.rawConnectionString.Replace("", server).Replace("", database);
using (SqlConnection conn = new SqlConnection(finalConnString))
{
using (SqlCommand cmd = new SqlCommand("sp_spaceused", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
cmd.ExecuteNonQuery();
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
using (DataSet ds = new DataSet())
{
da.Fill(ds);
var spaceAvailable = ds.Tables[0].Rows[0][1].ToString();
string freeSpace = spaceAvailable.Remove(spaceAvailable.Length - 3, 3);
return Convert.ToInt64(freeSpace);
}
}
}
}
}
Теперь у меня вопрос:
Как мне преобразовать байты в мегабайты, чтобы можно было сравнить размер базы данных и свободное место на диске?
Это то, что у меня есть, но это мегабайты и байты, поэтому мне нужно выполнить преобразование здесь.
if (dbSize > freeSpace)
{
ClientScript.RegisterStartupScript(this.GetType(), "Insufficient Space", "alert('The database size is greater than the available space on the drive. Please make some room for the database in D drive of the subscriber server.');", true);
}
Подробнее здесь: https://stackoverflow.com/questions/125 ... vice-versa
Как преобразовать размер базы данных из мегабайт в байты и наоборот? ⇐ C#
Место общения программистов C#
1730366086
Anonymous
По сути, я создаю приложение репликации, и мне просто нужно выяснить размер базы данных и сколько свободного места у меня есть на диске D:\.
Если размер базы данных превышает свободное место, мне нужно предупредить пользователя.
Вот что у меня есть:
Сначала я узнаю, сколько свободного места на диске D.
DriveInfo di = new DriveInfo(@"D:\");
if (di.IsReady)
{
freeSpace = di.TotalFreeSpace;
}
Затем я получаю размер базы данных, которую собираюсь реплицировать:
dbSize = Database.GetDatabaseSize(ddlPublisherServer.Text, ddlPublisherDatabase.Text);
Вот метод, позволяющий получить размер БД. Я не знаю, есть ли лучший способ сделать это, но размер содержит строку «МБ», поэтому мне нужно ее удалить.
public static long GetDatabaseSize(string server, string database)
{
string finalConnString = Properties.Settings.Default.rawConnectionString.Replace("", server).Replace("", database);
using (SqlConnection conn = new SqlConnection(finalConnString))
{
using (SqlCommand cmd = new SqlCommand("sp_spaceused", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
cmd.ExecuteNonQuery();
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
using (DataSet ds = new DataSet())
{
da.Fill(ds);
var spaceAvailable = ds.Tables[0].Rows[0][1].ToString();
string freeSpace = spaceAvailable.Remove(spaceAvailable.Length - 3, 3);
return Convert.ToInt64(freeSpace);
}
}
}
}
}
Теперь у меня вопрос:
Как мне преобразовать байты в мегабайты, чтобы можно было сравнить размер базы данных и свободное место на диске?
Это то, что у меня есть, но это мегабайты и байты, поэтому мне нужно выполнить преобразование здесь.
if (dbSize > freeSpace)
{
ClientScript.RegisterStartupScript(this.GetType(), "Insufficient Space", "alert('The database size is greater than the available space on the drive. Please make some room for the database in D drive of the subscriber server.');", true);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/12567805/how-do-i-convert-the-database-size-from-mega-bytes-to-bytes-or-vice-versa[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия