verwendetes Datenbanksystem: Access, VS
Hallo zusammen,
Ich google seit ein paar Stunden und probiere einige Dinge aus, leider komm ich auf keinen grünen Zweig!
DBcon.cs:
class DatabaseConnection
{
private string sql_string; // SQL-Abfrage
private string strCon; // SQL-Verbindungs String
OleDbDataAdapter da_1;
public string OLE
{
set { sql_string = value; }
}
public string connection_string
{
set { strCon = value; }
}
public DataSet GetConnection
{
get { return MyDataSet(); }
}
private DataSet MyDataSet()
{
OleDbConnection con = new OleDbConnection(strCon);
con.Open();
da_1 = new OleDbDataAdapter(sql_string, con);
DataSet dat_set = new DataSet();
da_1.Fill(dat_set, "Tbl_Data");
con.Close();
return dat_set;
}
}
Admin.cs:
public partial class frmCMAP : Form
{
DatabaseConnection objConnect;
string conString; // SQL-Verbindungs String
DataSet ds;
DataRow dRow; // Anzahl der Reihen
int MaxRows;
int inc = 0;
private void btnUserVerwaltung_Click(object sender, EventArgs e)
{
try
{
objConnect = new DatabaseConnection();
conString = Properties.Settings.Default.CMAP___KundenlisteConnectionString;
objConnect.connection_string = conString;
objConnect.OLE = "SELECT Kunden_tbl.Kunde FROM Kunden_tbl WHERE Kunden_tbl.CID=1";
ds = objConnect.GetConnection;
MaxRows = ds.Tables[0].Rows.Count;
NavigateRecords();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void NavigateRecords()
{
dRow = ds.Tables[0].Rows[inc];
tbCustomersStammdatenCID.Text = dRow.ItemArray.GetValue(1).ToString();
}
}
Leider bekomme ich immer den Fehler: > Fehlermeldung:
Der Index war außerhalb des ArrayBereichs..
kann mir jemand einen Denkanstoß geben?!
Hier taucht der Fehler auf:
private void NavigateRecords()
{
dRow = ds.Tables[0].Rows[inc];
tbCustomersStammdatenCID.Text = dRow.ItemArray.GetValue(1).ToString();
DANKE!!
Bitte verwende einen aussagekräftigen Titel und die richtigen Code-Tags. Auch bei Fehlermeldungen. Hab beides korrigiert.
[Hinweis] Wie poste ich richtig? Punkt 3 und Punkt 6.
Da wird ein Index aufgerufen den es nicht gibt. Gibt es Tables[0] und Rows[inc]? Oder hängts an der 1 in GetValue.
Hallo teebeutel,
der Fehler ist eindeutig. Einfach mal Debuggen. Irgendwo hast du ein Array und greifst auf etwas zu, was es nicht gibt. Siehe chilic's Antwort.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?
Weiter solltest du auch die Verantwortlichkeiten trennen
[Artikel] Drei-Schichten-Architektur
Dann auch mal [Artikelserie] SQL: Parameter von Befehlen anschauen. Das hilft auch noch.
Gruss
Coffeebean
PS: Wenns geht nimm kein Access
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Als Info: neue Anwendungen entwickelt man heutzutage nicht mehr mit Access und bestehende versucht man von Access los zu lösen.
Streng genommen ist Access nicht mal eine Datenbank; wie gesagt ist die Daseinsberechtigung ohnehin nicht mehr gegeben bei Access.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code