» »

C# OleDB create database

C# OleDB create database

DubleG ::

Rad bi najprej preveril če baza obstaja in če ne obstaja, bi jo rad ustvaril. Torej:
Naprimer da je connStr="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BLA;Data Source=LOCAL-PC;"
OleDbConnection OleCon = new OleDbConnection();
                OleCon.ConnectionString = connStr;
                try
                {
                    OleCon.Open();
                    goto Nadaljuj;
                }
                catch
                { 
                
                }                
                finally{
                
                    //Initial Catalog does not exist
                    //create it
                    string con = "Integrated Security=" + session.CustomActionData["Integrated Security"].ToString() + ";" + "Initial Catalog=;" + "Data Source=" + session.CustomActionData["Data Source"].ToString() + ";";

                    OleDbConnection OleCon2 = new OleDbConnection();

                    OleCon2 = new OleDbConnection(con);//tukaj brejkne
                    string datasource = session.CustomActionData["Data Source"].ToString();
                     string cad2 = session.CustomActionData["SetTargetPath"].ToString();

                    string sql = "CREATE DATABASE "+datasource+  " ON PRIMARY"
                    + "(Name=" + datasource + ", filename = '" + cad2 + "DB Database\\" + datasource + ".mdf', size=3,"
                    + "maxsize=5, filegrowth=10%)log on"
                    + "(name=mydbb_log, filename='" + cad2 + "DB Database\\" + datasource + ".ldf',size=3,"
                    + "maxsize=20,filegrowth=1)";

                    ExecuteSQLStmt(sql, con);

                   
                   
                
                }
            Nadaljuj:
                OleCon.Close();




Obstaja kakšna rešitev za katero jaz ne vem?

LP
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

BHawk ::

Prvo finally block v try->catch->finally se bo vedno izvedel.

Kar moraš ti narediti je, da v catch uloviš napako, ter pogledaš zakaj se ne moreš konektati na bazo. Če je razlog, da initial catalog ni pravilen izvedeš sql ukaz za kreiranje nove baze.

DubleG ::

To sem v teoriji tudi sam želel, pa ne vem kako...
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

tomaz_sres ::

Živijo,

s tem selectom preveri, če baza obstaja:

select db_id('ImeBaze')
Lep pozdrav, Tomaž Sreš, http://www.sres.si

nuclear ::

v finnaly-u zapri bazo.. v tryu odpri in delaj, v catchu expection meči(pač napako), v finnaly pa zaključi.. nekaj v smislu:

            using (SqlConnection povezava = new SqlConnection(Convert.ToString(Session["cs"])))
            {

                try
                {
                    povezava.Open();
                    string querya = "query";

                    SqlCommand cmd = new SqlCommand(querya, povezava);

                    SqlDataReader dr = cmd.ExecuteReader();

                    if (dr.Read())
                    {
                        email = dr["Vrednost"].ToString();
                    }
                    dr.Close();

                }

                catch (Exception ex)
                {

                    Response.Write(ex.Message);

                }
                finally
                {
                    povezava.Close();
                    povezava.Dispose();
                }


            }
Asus G14 2023 - Ryzen 7940HS - 32GB DDR5 - GeForce RTX 4080 - 990 PRO 4TB

3p ::

nuclear je izjavil:

v finnaly-u zapri bazo.. v tryu odpri in delaj, v catchu expection meči(pač napako), v finnaly pa zaključi.. nekaj v smislu:


Če se ne motim, imaš v tej kodi finally čisto odveč. Using po izhodu iz bloka izvede Dispose (dispose pa Close).

DubleG ::

Kako se v objektu
connection = (ADODB._Connection)dataLinks.PromptNew();

določi privzeto izbran Provider?
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

DubleG ::

že imam,

connection = new ADODB.ConnectionClass();
connection.ConnectionString = connStr;

//set local COM compatible data type
object oConnection = connection;

s tem da je connStr string v katerem je Provider=SQLOLEDB.1
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# težava

Oddelek: Programiranje
233728 (2574) mladec
»

SQL problem

Oddelek: Programiranje
141688 (1306) win64
»

razložitev nekaterij elementov v visual studio 05

Oddelek: Programiranje
72108 (1913) darkolord
»

OleDb in visual studio .net

Oddelek: Programiranje
162290 (2069) Kovalchuk
»

branje byte[] iz MS access-ove baze

Oddelek: Programiranje
81939 (1849) BHawk

Več podobnih tem