Как преобразовать размер базы данных из мегабайт в байты и наоборот?C#

Место общения программистов C#
Ответить
Anonymous
 Как преобразовать размер базы данных из мегабайт в байты и наоборот?

Сообщение 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);
}


Подробнее здесь: https://stackoverflow.com/questions/125 ... vice-versa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»