VS 2012 Express und Db erstellen


kanada

Mitglied
VS 2012 & DB erstellen

Hallo,

streite mich derzeit mit einem kleinen Problem herum und wollte jetzt mal Fragen ob das in der Express Version überhaupt möglich ist. Ich wollte mir eine kleine DB mit einem Front-End basteln, nun wollte ich dem Projekt eine lokale SQL DB anbinden und bin dabei wie von MS vorgeschrieben vorgegangen.

http://msdn.microsoft.com/de-de/library/vstudio/ms233763.aspx

Nur hängt es leider bei dem Punkt, die erstelle Tabelle dann zu speichern bzw. vom Standardname Table auf etwas x beliebiges zu ändern. Denn Name ändern wird mir nicht erlaubt und speichern tut er die Tabelle auch nicht.

Wird dies bei der Express Version nicht unterstützt? Oder übersehe ich nur etwas?
 

Anhänge

  • DbName.jpg
    DbName.jpg
    189,9 KB · Aufrufe: 38
Zuletzt bearbeitet:

Hale

Mitglied
Hallo kanada,

Data Connections

In previous Express products, the ability to connect to a data source was limited to Database File. In Express for Windows Desktop, this capability has been extended to support all SQL Server data sources. For example, in Database Explorer, you can connect, navigate, query against and edit database objects through the latest SQL Server 2012 and Windows Azure SQL Databases.

http://blogs.msdn.com/b/visualstudi...-for-windows-desktop-is-here.aspx?PageIndex=3

Wie du dem Zitat entnehmen kannst, kann das Express 2012 Datenbanken editieren, wodurch sich wahrscheinlich ein kleiner Fehler in deiner Handhabung eingeschlichen hat.

Hast du versucht die Schritte in folgender reihenfolge durchzuführen?

Tabelle speichern -> Datei - > Tabelle1 speichern
Tabelle umbenennen -> über die Property

Mir ist aufgefallen, dass deine Tabelle anscheinend noch nicht gespeichert ist. Wenn du den Schritten in der MSDN folgst, wirst du auch merken, dass man diese anscheinend zuerst speichern muss, bevor man sie umbennen kann.

Ich hoffe das konnte dir weiterhelfen.

Gruß
Hale
 

kanada

Mitglied
Hallo Hale,

danke für deine schnelle Antwort, das mit dem umbenennen stand auf der Dt. Seite nicht mit. Wäre das schon mal geklärt. Somit Dankeschön, schnell gelöst das Problem :)
 
Zuletzt bearbeitet:

kanada

Mitglied
Ich schieb gleich nochmal eine Frage hinter her ;)
Da SQl für mich etwas Neuland ist und ich mich gerade vom Buch & PC erschlagen fühle.

Und zwar möchte ich Werte in eine DB speichern und habe dafür folgendes, was aber nicht ganz funktioniert. Gibt bestimmt auch elegantere Varianten.

Code:
//
        // Verbindung zur SQL Datenbank
        //
        DataSet ds = new DataSet();
        SqlConnection con = new SqlConnection("Data Source= (LocalDB)\v11.0; Initial Catalog= Test"); //; Integrated Security=TRUE
        SqlDataAdapter da = new SqlDataAdapter();
        BindingSource btlname = new BindingSource();

//
        // Inhalt in DB schreiben
        //
        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox2.Text == "")
            {
                MessageBox.Show("Wert eingeben", "Error");
                this.textBox2.Focus();
                return;
            }
            else if (textBox3.Text == "")
            {
                MessageBox.Show("Wert eingeben", "Error");
                this.textBox3.Focus();
                return;
            }
            else
            {
                int x;
                da.InsertCommand = new SqlCommand("insert(Kategorie, Bezeichnung)" + "values(@Kategorie,@Bezeichnung)", con);
                da.InsertCommand.Parameters.Add("@Kategorie", SqlDbType.VarChar).Value = textBox2;
                da.InsertCommand.Parameters.Add("@Bezeichnung", SqlDbType.Float).Value = float.Parse(textBox3);
                con.Open();
                x = da.InsertCommand.ExecuteNonQuery();
                textBox2.Clear();
                this.textBox2.Focus();

                con.Close();
                if (x >= 1)
                    MessageBox.Show("Werte eingetragen");
                else
                    MessageBox.Show("Eingabe überprüfen");

                con.Open();

                //MessageBox.Show(con.State.ToString());
                con.Close();
            }
        }

        //
        // Prüfe ob Zahlen eingegeben wurden
        //
        private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
            char ch = e.KeyChar;
            if (!char.IsDigit(ch) && ch != 8)
            {
                e.Handled = true;
            }

        }
Wenn ich dann auf "speichern" gehe, kommt nach ein paar Sekunden des Wartens, das er keine Verbindung herstellen konnte und bei "con.Open();" hängen bleibt.
 

Hale

Mitglied
Hallo kanada,

hast du es mal versucht auch einen User und ein Passwort zu übergeben?

Code:
SqlConnection con = new SqlConnection(@"Data Source=(LocaleDB)\v11.0;Initial Catalog=Test;User Id=MyUser;Password=MyPassword");

Gruß
Micha
 

kanada

Mitglied
Also Verbindungstechnisch läuft soweit alles, kann die Daten auch in die DB schreiben und auch wieder ausgeben in eine Textbox oder dergleichen.

Nun würde ich das ganze aber etwas filtern wollen, z.B habe ich die ComboBox Kategorie und dann noch eine zweite ComboBox mit Anlage.

Nun soll man bei der ComboBox Kategorie eine Vorauswahl treffen und es werden dann in der ComboBox Anlage nur die angezeigt, die in der DB der entsprechenden Kategorie zugeordnet sind.

Code:
SqlCeCommand command = new SqlCeCommand("SELECT Anlage FROM Anlage WHERE Kategorie IN ('Test','ABC')", cn);
            SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(command);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, "Anlage");
            CbAnlage.DisplayMember = "Anlage";
            CbAnlage.ValueMember = "Anlage";
            CbAnlage.DataSource = ds.Tables["Anlage"];

Nachtrag:
Kann ich eigentlich auch in einem anderen Form (SubForm) abfragen welches TabPages im MainForm den Focus hat?
 
Zuletzt bearbeitet: