Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.05.2014, 17:09

C# Access Datenbank Tabelle Inhalt benützen

Hallöchen
Ich hatte die Idee das mein Programm statt alle Wörter im Code einzugeben in einer Acces Datenbank-Tabelle stehen sollten. Die Datei hab ich schon(database1.accdb) in dieser sind 2 Tabellen (1 mit den Französchischen Wörtern(Tabelle1) und eine mit den Deutschen Wörtern(Tabelle2)). In Tabell1 steht:
ID1 aller
ID2 nager
In Tabelle 2 steht:
ID1 gehen
ID2 schwimmen
Ich will dass das ID1 (Tabelle2) zuerst in der WinForm im Label(label2) erscheint und dann muss man in der TextBox aller schreiben und wenns richtig ist gehts weiter mit ID2(Tabelle2).
wie geh ich da am besten vor?
Mein >Code sieht momentan so aus:

C#-Quelltext

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
67
68
69
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Franz_Learn
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            label1.BackColor = Color.Transparent;
            label2.BackColor = Color.Transparent;
        }
            

        private void Form1_Load(object sender, EventArgs e)
        {
            label2.Text = //Muss hier vlt. die Tabelle definiert werden? Etwa so(?): Database1DataSet.blablabla;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
    /*     Das ist der ursprüngliche Code in dem alles schon drinsteht...
            if (textBox1.Text == "aller")
            {
                label1.Text = "Richtig";
                listBox1.Items.Add("gehen = aller");
                label2.Text = "schwimmen";
            }
                else
                {
                    label1.Text = "Falsch";
                    label2.Text = "schwimmen";
                }
   
            
             if (textBox1.Text == "nager")
                {
                    label1.Text = "Richtig";
                    listBox1.Items.Add("schwimmen = nager");
                }
*\
        }


        private void button2_Click(object sender, EventArgs e)
        {
            label1.Text = "";
            textBox1.Text = "";
        }

        private void button2_Click_1(object sender, EventArgs e)
        {

        }

       

      

       
    }
}

Toemsel

Treue Seele

Beiträge: 310

Wohnort: OÖ

Beruf: Student und Programmierer

  • Private Nachricht senden

2

18.05.2014, 19:38

Multilanguage funktioniert mit einem Key-Value prinzip.
Z.B. Key: WELCOME_MESSAGE. Value: Bonjour, Hello, Hallo,....
Im Code (Pseudo)

Label.Text = Database.GetString("WELCOME_MESSAGE", this.Language); und du bekommst einen String mit der Richtigen Übersetzung.

In deinem Fall würde ich keine neue Tabelle für jede Sprache erstellen.
Wohl eher.

1. Tabelle

| Key | LinkID |

2. Tabelle
| ID | Language |

3. Tabelle

| LinkID | LanguageID | Value |

Somit:

Inhalt Tabelle 1.
| 1 | Welcome message |
| 2 | Close message |

Inhalt Tabelle 2.
| 1 | Französisch |
| 2 | Englisch |
| 3 | Deutsch |

Inhalt Tabelle 3.
| 1 | 1 | Bonjour |
| 1 | 2 | Hello |
| 1 | 3 | Hallo |
| 2 | 2 | Bye |
| 2 | 3 | Auf Wiedersehen |


Somit kannst du individuell Sprachen und dessen Übersetzungen hinzufügen, ohne im Code etwas zu ändern.
Der Aufruf im Code (SQ):


select Value from table3 where LinkID = (select LinkId from table1 where key = "Gesuchter String") and LangugageId = (select ID from table2 where language = "Englisch")


Lg