Собственно при запуске проекта, если файла бд нет в папке проекта, то выполняется процедура по созданию файла .mdf
C# |
1
| public Boolean check_exist_db () |
|
Выдает эксепшн : "Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll
Дополнительные сведения: Database 'My_cool_db' already exists. Choose a different database name."
Файла нет - база есть ОК.
База My_cool_db уже была подключена к моему проекту при пред. компиляции.
Как устранить недоразумение? Как правильнее подойти к проблеме?
Пытался дропнуть
SQL |
1
| DROP DATABASE My_cool_db |
|
ЭКСЕПШН:"Дополнительные сведения: Cannot drop the database 'My_cool_db', because it does not exist or you do not have permission."
C# |
1
2
3
4
5
6
7
8
9
10
11
12
| db_open data_base_open = new db_open();
if (data_base_open.check_exist_db()==false)
{
DialogResult result = MessageBox.Show("Файл базы данных не найден создать?", "Внимание" ,
MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
data_base_open.create_db();
}
else
Application.Exit();
} |
|
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace my_cool_app
{
class db_open
{
public string ConnectionString=@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Environment.CurrentDirectory + @"..\..\..\My_cool_db.mdf;Integrated Security=True";
public db_open()
{
}
public Boolean check_exist_db ()
{
Boolean db_file_ex = File.Exists(Environment.CurrentDirectory + @"..\..\..\My_cool_db.mdf");
Boolean db_log_file_ex = File.Exists(Environment.CurrentDirectory + @"..\..\..\My_cool_db_log.ldf");
if ((db_file_ex == true) && (db_log_file_ex == true))
return true;
else
return false;
}
public void create_db()
{
string base_path = Environment.CurrentDirectory + @"..\..\..\My_cool_db_1.mdf";
string log_path = Environment.CurrentDirectory + @"..\..\..\My_cool_db_log.ldf";
SqlConnection connection = new SqlConnection(ConnectionString);
string cmnd_create_db = "CREATE DATABASE My_cool_db_1 ON PRIMARY " +
"(NAME = My_cool_db_1, " +
"FILENAME = '" + base_path + "', " +
"SIZE = 4MB, MAXSIZE = 20MB, FILEGROWTH = 10%) " +
"LOG ON (NAME = My_cool_db_log_1, " +
"FILENAME = '" + log_path + "', " +
"SIZE = 4MB, " +
"MAXSIZE = 5MB, " +
"FILEGROWTH = 10%)";
SqlCommand cmnd = connection.CreateCommand();
cmnd.CommandText = cmnd_create_db;
connection.Open();
//cmnd.ExecuteNonQuery();
List<string> db_cmnd = new List<string>();
db_cmnd.Add(File.ReadAllText(Environment.CurrentDirectory + "\\res\\Main.sql"));
db_cmnd.Add(File.ReadAllText(Environment.CurrentDirectory + "\\res\\Category_table.sql"));
db_cmnd.Add(File.ReadAllText(Environment.CurrentDirectory + "\\res\\ForeignKeyConstraint1.sql"));
foreach (string command_text in db_cmnd)
{
cmnd.CommandText = command_text;
cmnd.ExecuteNonQuery();
}
connection.Close();
connection.Dispose();
cmnd.Dispose();
}
}
} |
|