Autor Beitrag
rallepralle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Fr 08.08.08 23:02 
DBSystem: MSSQL 2000

Hallo,

habe folgenden Code erstellt. Aber es kommt andauernd dieser Fehler. Hoffe jmd. hat eine Ahnung warum das so ist.

"Fehler beim Generieren einer Benutzerinstanz von SQL Server aufgrund eines Fehlers beim Starten des Prozesses fr die Benutzerinstanz. Die Verbindung wird getrennt."


ausblenden volle Höhe 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:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication12
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private DataTable dt = null;
private DataView dv = null;

private void Form1_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(
"Data Source=.\\SQLEXPRESS; AttachDbFilename=|Datadirectory|" +
"\\TEST.mdf; Integrated Security=True; User Instance=True");
SqlCommand cmd = new SqlCommand(
"SELECT * from IstEingabe", conn);
SqlDataAdapter da= new SqlDataAdapter(cmd);
DataTable dt= new DataTable();
da.Fill(dt);
dv = new DataView(dt); // habs auch mit
//dv= dt.DefaultView;
// versucht.
dataGridView1.DataSource = dv;
}

private void button3_Click(object sender, EventArgs e)
{
dv.Sort = textBox1.Text;
dv.RowFilter = textBox2.Text;
}
}
}


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Zuletzt bearbeitet von rallepralle am Mi 13.08.08 17:16, insgesamt 1-mal bearbeitet
rallepralle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Sa 09.08.08 16:59 
Titel: Re: c#: Fehler beim Generieren einer Benutzerinstanz
Hallo!

Habe mein Problem lösen können. HAbe einfach die DB ausgetauscht, doch dafür ein neues Problem bekommen. Es kommt immer die Fehlermeldung: "Die Spalte [Ob.Name] wurde nicht gefunden." Obwohl die Spalte "Name" in der Tabelle "Objekt" definitiv vorhanden ist! Bei der Fehlermeldung wird auf diese Zeile im Code gezeigt:

ausblenden C#-Quelltext
1:
dv.RowFilter = "(Ob.Name LIKE '" + comboBox1.Text + "') AND (Op.Name LIKE '" + comboBox2.Text + "') AND (LBR.RessourcenName LIKE '" + comboBox3.Text + "')";					


c# Code:

ausblenden volle Höhe 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:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication12
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private DataTable dt = null;
        private DataView dv = null;

        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(
                "Data Source=.\\SQLEXPRESS; AttachDbFilename=|Datadirectory|" +
                "\\TEST.mdf; Integrated Security=True; User Instance=True; Timeout= 50");
            SqlCommand cmd = new SqlCommand(
                "SELECT DISTINCT Ap.SollAppName FROM  Objekt AS Ob INNER JOIN IstEingabe AS Ist ON Ob.IDObjekt = Ist.IDOjekt INNER JOIN Operation AS Op ON Ist.IDOperation = Op.IDOperation INNER JOIN RessLetzteBeanspruchteRessource AS LBR ON Ist.IDLetzteBeansprRess = LBR.IDRessource INNER JOIN IstEingabe_SollApp_Zuordnung AS ISZ ON Ist.IDIstEingabe = ISZ.IDIstEingabe INNER JOIN SollApplikation AS Ap ON ISZ.IDSollApp = Ap.IDSollApplikation", conn);
            SqlDataAdapter da= new SqlDataAdapter(cmd);
            DataTable dt= new DataTable();
            da.Fill(dt);
            dv = new DataView(dt);    
            dataGridView1.DataSource = dv;  
        }

        private void button3_Click(object sender, EventArgs e)
        {

            dv.RowFilter = "(Ob.Name LIKE '" + comboBox1.Text + "') AND (Op.Name LIKE '" + comboBox2.Text + "') AND (LBR.RessourcenName LIKE '" + comboBox3.Text + "')";
            
        }
        
    }
}
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 09.08.08 17:10 
Musst Du vielleicht in der DataTable noch die Spalten anlegen?
(Hatten wir hier z.B. mal)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
rallepralle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Sa 09.08.08 19:04 
user profile iconChristian S. hat folgendes geschrieben:
Musst Du vielleicht in der DataTable noch die Spalten anlegen?
(Hatten wir hier z.B. mal)


Ich verstehe nicht ganz, wozu? Ich brauch diese Tabelle nur, um auf die Ap.SollAppName zu kommen.

Die Daten in der Tabelle sind alle in der DB gespeichert. Oder was meinst du jetzt genau mit Spalten anlegen? Bitte erklär es mir aber verständlich, da ich noch neu bin.

VG
rallepralle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Sa 09.08.08 19:42 
Ach ja..die Tabellen und ihre Beziehungen zueinander sind alle in Ordnung. Habe die SQL-Anfrage in den Enterprise Manager reingetippt. Und da kam genau das raus, was ich haben wolllte. Nur funktioniert das im C# irgendwie nicht mehr, da er mir die Spalte "Ob.Name" nicht finden kann...
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 09.08.08 20:52 
Zitat:
da er mir die Spalte "Ob.Name" nicht finden kann...

Was auch vollkommen korrekt ist. Der Rowfilter an der DataView wird auf die lokale Datenmenge in der Datatable angewendet.
Es wird nicht an an die Datenbank geschickt, wie auch, weder Dataview noch Datatable wissen wo die Daten die sie halten herkommen.

Die einzige Spalte die momentan bekannt ist also SollAppName.
Wenn du auf mehr filtern willst mußt du entweder
a.) die entsprechenden Spalten auch mit über dein SQL selektieren und dann deinen Rowfilter darauf anwenden. Dann aber ohne die Tabellen-Aliase
oder
b.) die Filterbedingungen mit in dein SQL packen und über deinen SqlCommand an die Datenbank schicken
rallepralle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: So 10.08.08 10:05 
user profile iconRalf Jansen hat folgendes geschrieben:
Zitat:
da er mir die Spalte "Ob.Name" nicht finden kann...

Was auch vollkommen korrekt ist. Der Rowfilter an der DataView wird auf die lokale Datenmenge in der Datatable angewendet.
Es wird nicht an an die Datenbank geschickt, wie auch, weder Dataview noch Datatable wissen wo die Daten die sie halten herkommen.

Die einzige Spalte die momentan bekannt ist also SollAppName.
Wenn du auf mehr filtern willst mußt du entweder
a.) die entsprechenden Spalten auch mit über dein SQL selektieren und dann deinen Rowfilter darauf anwenden. Dann aber ohne die Tabellen-Aliase
oder
b.) die Filterbedingungen mit in dein SQL packen und über deinen SqlCommand an die Datenbank schicken


Jaaa es lebt!!! :D Danke! Hat geklappt! Aber wie mach ich es jetzt, dass ich nur eine Spalte - in meinem Fall die SollAppName -Spalte - mir anzeigen lasse und nicht noch die restlichen?

Besten Dank nochmal!!!