Benutzer mit den meisten Antworten
DataSet-Designer Problem

Frage
-
Hallo!
Ich habe ein Problem bei der Erstellung einer DataTable (genauer gesagt mit den TableAdapter der DataTable) im DataSet-Designer.
Eine SQL-Abfrage verwendet SQL-Parameter in der WHERE Klausel. Ich weis zwar nicht, ob dies wichtig ist, aber ohne Parameter in der WHERE-Klausel hatte ich noch nie Probleme bei der Erstellung der DataTables/TableAdaper.
Wenn ich also diese Abfrage verwende und mit weiter den Assistenten zur Erstellung der DataTable fortführen möchte, kommt die Fehlermeldung:
! Select-Anweisung geniert. Die "@WoTAG_MO"-Skalarvariable muss deklariert werden.
So lang es nur ein SQL-Parameter ist, kann man die Warnung übergehen (weiter klicken) und den Parameter über die Eigenschaften des TableAdapters -> Parameter -> Parameter manuell hinzufügen, hinzufügen. In der CodeBehind funktionieren die Abrufe einschließlich der man. hinzugefügten Parameter ohne Probleme.
Jetzt benötige ich aber mehere SQL-Parameter. Da verhält sich der DataSet-Designer nicht mehr so kooperativ ;-)
Bei der Erstellung der DataTable kann man zwar auch wieder die Fehlermeldung übergehen, aber jetzt werden schon in der Ansicht der DataTable die Spalten (DataRow's) nicht mehr angezeigt!! und auch in der CodeBehind kann man nicht auf sie zugreifen (Schema wurde nicht erstellt).
Gibt es denn keine Möglichkeit Abfragen mit meheren SQL-Parameter in der WHERE-Klausel in einem typisierten DataSet zu benutzen?
Fred
Hinweis: Im SQL-Server Managment-Studio wird das SQL-Statment natürlich ohne Probleme ausgeführt.
Umgebung: VS 2010, MSSQL-Server 2008
Mein SQL-Statment:
DECLARE @DATUM_VON DateTime DECLARE @DATUM_BIS DateTime DECLARE @STUNDE_VON INT DECLARE @STUNDE_BIS INT DECLARE @WOTAG_MO INT DECLARE @WOTAG_DI INT DECLARE @WOTAG_MI INT DECLARE @WOTAG_DO INT DECLARE @WOTAG_FR INT DECLARE @WOTAG_SA INT DECLARE @WOTAG_SO INT SET @DATUM_VON = '12.08.2013' SET @DATUM_BIS = '22.09.2013' SET @STUNDE_VON = 7 SET @STUNDE_BIS = 19 SET @WOTAG_MO = 0 -- Montag(e) anzeigen? (0=Nein, 1=Ja) SET @WOTAG_DI = 0 -- Dienstag(e) anzeigen? (0=Nein, 1=Ja) SET @WOTAG_MI = 1 -- Mittwoch anzeigen? (0=Nein, 1=Ja) SET @WOTAG_DO = 1 -- Donnerstag(e) anzeigen? (0=Nein, 1=Ja) SET @WOTAG_FR = 0 -- Freittag(e) anzeigen? (0=Nein, 1=Ja) SET @WOTAG_SA = 0 -- Samstag(e) anzeigen? (0=Nein, 1=Ja) SET @WOTAG_SO = 0 -- Sonntag(e) anzeigen? (0=Nein, 1=Ja) ------------------------ SELECT -- ROW_NUMBER() OVER (ORDER BY DATUM) as ID, DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)) as DATUM_BASIS, -- Zeit convert(char(10), DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)), 104) as DATUM, Datename("dw", DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) as WO_TAG, -- Wochentag Datepart("hh", DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) as STUNDE, -- Stunde -- Inhalt GEN.SP_C + GEN.SP_D + GEN.SP_F as ANRUFE_GES, GEN.SP_T as ANRUFE_AG, GEN.SP_AU as ABBRUECHE, round( case when (GEN.SP_C + GEN.SP_D + GEN.SP_F) = 0 then 0 else (GEN.SP_AU * 1.0 / (GEN.SP_C + GEN.SP_D + GEN.SP_F) * 1.0) * 100 end ,2) as ABBRUCH_PRZ, GEN.SP_BG as DURCH_DAUER_GESPRAECH, GEN.SP_BN as DURCH_WARTE_ABGEBR_GESPR, null as nDURCH_DAUER_GESPRAECH, null as nDURCH_WARTE_ABGEBR_GESPR FROM TK.dbo.NR NR LEFT OUTER JOIN -- Stunden pro Tag hinzufügen (SELECT top 24 @STUNDE_VON + NR.NR as STUNDE FROM TK.dbo.NR NR WHERE NR.NR <= @STUNDE_BIS - @STUNDE_VON ORDER BY 1) ZEIT ON 1=1 LEFT OUTER JOIN TK.dbo.GENERAL_DAT GEN ON GEN.DATUM = DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)) -- Gesprächsdaten hinzufügen WHERE NR.NR <= datediff(day, @DATUM_VON, @DATUM_BIS) and Datepart("dw", DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) IN (case when @WOTAG_MO = 1 THEN 1 else 0 end , case when @WOTAG_DI = 1 THEN 2 else 0 end , case when @WOTAG_MI = 1 THEN 3 else 0 end , case when @WOTAG_DO = 1 THEN 4 else 0 end , case when @WOTAG_FR = 1 THEN 5 else 0 end , case when @WOTAG_SA = 1 THEN 6 else 0 end , case when @WOTAG_SA = 1 THEN 7 else 0 end) ORDER BY 1
Antworten
-
Hallo Fred,
siehe erst die andere Antwort...
Wenn man es manuell macht muss man die Parameter dem cmd zuweisen, z. B.
cmd.Parameters.Add("@DATUM_VON", SqlDbType.DateTime); cmd.Parameters.Add("@DATUM_BIS", SqlDbType.DateTime); -- ... usw. ...
und natürlich (später) die gewünschten Werte für die Kritierien zuweisen.
FillSchema (wie auch der TableAdapter der gleiches tut) kann nur funktionieren, wenn der Befehl korrekt parametrisiert ist.Gruß Elmar
- Als Antwort markiert perlfred Montag, 14. Oktober 2013 12:22
-
Hallo Fred,
kann man vielleicht machen, wäre mir aber viel zu viel Arbeit nur um eine Abfrage zum laufen zu kriegen ;()
Probiere doch mal den anderen Vorschlag aus: Erstelle aus der Abfrage eine Prozedur und verwende diese. Das geht dann relativ stressfrei und ist leichter wartbar bei späteren Änderungen.
Gruß Elmar
- Als Antwort markiert perlfred Montag, 14. Oktober 2013 12:22
Alle Antworten
-
Hallo!
Ich habe jetzt mal versucht, das typisierte DataSet "man." zu erstellen:
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = "Data Source=REPORT2;Initial Catalog=TK;Integrated Security=True"; System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = con; string zSQL = "SELECT "; zSQL += "DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)) as DATUM_BASIS, "; zSQL += "convert(char(10), DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)), 104) as DATUM, "; zSQL += "Datename(\"dw\", DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) as WO_TAG, -- Wochentag"; zSQL += "Datepart(\"hh\", DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) as STUNDE, -- Stunde"; zSQL += "GEN.SP_C + GEN.SP_D + GEN.SP_F as ANRUFE_GES, "; zSQL += "GEN.SP_T as ANRUFE_AG, "; zSQL += "GEN.SP_AU as ABBRUECHE, "; zSQL += "round( case when (GEN.SP_C + GEN.SP_D + GEN.SP_F) = 0 then 0 else (GEN.SP_AU * 1.0 / (GEN.SP_C + GEN.SP_D + GEN.SP_F) * 1.0) * 100 end ,2) as ABBRUCH_PRZ, "; zSQL += "GEN.SP_BG as DURCH_DAUER_GESPRAECH, "; zSQL += "GEN.SP_BN as DURCH_WARTE_ABGEBR_GESPR, "; zSQL += "null as nDURCH_DAUER_GESPRAECH, "; zSQL += "null as nDURCH_WARTE_ABGEBR_GESPR "; zSQL += "FROM TK.dbo.NR NR "; zSQL += "LEFT OUTER JOIN -- Stunden pro Tag hinzufügen "; zSQL += " (SELECT top 24 @STUNDE_VON + NR.NR as STUNDE "; zSQL += " FROM TK.dbo.NR NR "; zSQL += " WHERE NR.NR <= @STUNDE_BIS - @STUNDE_VON "; zSQL += " ORDER BY 1) ZEIT ON 1=1 "; zSQL += "LEFT OUTER JOIN TK.dbo.GENERAL_DAT GEN ON GEN.DATUM = DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)) -- Gesprächsdaten hinzufügen "; zSQL += "WHERE NR.NR <= datediff(day, @DATUM_VON, @DATUM_BIS) "; zSQL += "and Datepart(\"dw\", DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) "; zSQL += "IN (case when @WOTAG_MO = 1 THEN 1 else 0 end , case when @WOTAG_DI = 1 THEN 2 else 0 end , "; zSQL += " case when @WOTAG_MI = 1 THEN 3 else 0 end , case when @WOTAG_DO = 1 THEN 4 else 0 end , "; zSQL += " case when @WOTAG_FR = 1 THEN 5 else 0 end , case when @WOTAG_SA = 1 THEN 6 else 0 end , "; zSQL += " case when @WOTAG_SA = 1 THEN 7 else 0 end) "; zSQL += "ORDER BY 1"; cmd.CommandText = zSQL; System.Data.DataSet ds = new System.Data.DataSet(); System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(); da.SelectCommand = cmd; da.FillSchema(ds, System.Data.SchemaType.Source); System.Data.DataColumn colDATUM_BASIS = ds.Tables[0].Columns["DATUM_BASIS"]; System.Data.DataColumn colDATUM = ds.Tables[0].Columns["DATUM"]; System.Data.DataColumn colWO_TAG = ds.Tables[0].Columns["WO_TAG"]; System.Data.DataColumn colSTUNDE = ds.Tables[0].Columns["STUNDE"]; System.Data.DataColumn colANRUFE_GES = ds.Tables[0].Columns["ANRUFE_GES"]; System.Data.DataColumn colANRUFE_AG = ds.Tables[0].Columns["ANRUFE_AG"]; System.Data.DataColumn colABBRUECHE = ds.Tables[0].Columns["ABBRUECHE"]; System.Data.DataColumn colABBRUCH_PRZ = ds.Tables[0].Columns["ABBRUCH_PRZ"]; System.Data.DataColumn colDURCH_DAUER_GESPRAECH = ds.Tables[0].Columns["DURCH_DAUER_GESPRAECH"]; System.Data.DataColumn colDURCH_WARTE_ABGEBR_GESPR = ds.Tables[0].Columns["DURCH_WARTE_ABGEBR_GESPR"]; System.Data.DataColumn colnDURCH_DAUER_GESPRAECH = ds.Tables[0].Columns["nDURCH_DAUER_GESPRAECH"]; System.Data.DataColumn colnDURCH_WARTE_ABGEBR_GESPR = ds.Tables[0].Columns["nDURCH_WARTE_ABGEBR_GESPR"]; ds.WriteXmlSchema("View_150.xsd");
da bekomme ich an der Stelle da.FillSchema() genau die selbe Fehlermeldung wie der Designer:
Die "@DATUM_VON"-Skalarvariable muss deklariert werden.
... mir nutzt das aber wenig ... aber vieleicht ... -
Hallo Fred,
die Parameter für ein typisiertes DataSet werden nicht durch ein DECLARE festgelegt. Sie müssen beim TableAdapter in der Parameters Auflistung hinterlegt werden - zu finden im Eigenschaftsfenster (F4) - genauso wie man es bei einem (Sql)DataAdapter auch tut.
Die Fehlermeldung im Query Designer ist bei komplexeren Dingen (wie CASE) leider unvermeidlich, da der Designer nur sehr simples SQL interpretieren und dabei die Parameter selbst ermitteln kann - wird es komplexer, streikt er...
Für oben akzeptiere zunächst die Fehlermeldung und lege die Parameter manuell in der Auflistung an.
Oder aber: Erstelle eine Prozedur mit der Abfrage und den benötigten Parametern und verwende diese.
Im übrigen: Die DATEPART Funktion erwartet den ersten Parameter ohne Anführungsstriche (im Gegensatz zu Access/Jet). Und @WOTAG_SA kommt oben übrigen zweimal vor und Sonntag fehlt.
Gruß Elmar
- Bearbeitet Elmar BoyeEditor Donnerstag, 10. Oktober 2013 15:38
-
Hallo Fred,
siehe erst die andere Antwort...
Wenn man es manuell macht muss man die Parameter dem cmd zuweisen, z. B.
cmd.Parameters.Add("@DATUM_VON", SqlDbType.DateTime); cmd.Parameters.Add("@DATUM_BIS", SqlDbType.DateTime); -- ... usw. ...
und natürlich (später) die gewünschten Werte für die Kritierien zuweisen.
FillSchema (wie auch der TableAdapter der gleiches tut) kann nur funktionieren, wenn der Befehl korrekt parametrisiert ist.Gruß Elmar
- Als Antwort markiert perlfred Montag, 14. Oktober 2013 12:22
-
Hallo Elmar!
Einfach Super! Wie gründlich du dir die Posts durchliest! Du hast natürlich recht, die DARTEPART Funktion akzeptiert als ersten Parameter auch die Angabe der Literale aber ich verwende seit Jahren den ersten Parameter mit Anführungszeichen (die Statements habe ich per Paste/Copy übernommen und sie werden 100% vom SQL-Server mit Anführungszeichen ausgeführt). Aber wenn das nicht notwendig ist, bzw. vieleicht nur aus Compatibiltätsgründen von MS so ausgeführt wird, bin ich dir für den Hinweis natürlich dankbar.
>> Für oben akzeptiere zunächst die Fehlermeldung und lege die Parameter manuell in der Auflistung an.
Parameter man. anlegen geht zwar, aber wie beschrieben erzeugt der Designer, in diesem Fall (Abfrage zu komplex) eine Tabelle ohne Spalten, die auch in der Codebehind dann nicht ansprechbar sind.
Ich verfolge den Weg, die typisierte DataTable man. zu erstellen und würde mich freuen, wenn Du meine Frage die ich in der anderen Antwort von dir zuordnen möchte, beantworten könntest.
Vielen Dank für deine Hilfe!!!!!!!!
Fred.
-
Hallo Elmar!
Wie in der anderen Antwort geschrieben, verfolge ich jetzt den Weg, die typiesierte DataTabel man. zu erstellen. Leider stoße ich da schon wieder an (wissens) Grenzen.
Dank deiner Hilfe (Parameter im cmd definieren) verlief die Erstellung des Schemas jetzt erfolgreich.
Die XSD-Datei kann man auch dem Projekt hinzufügen und es wird eine Tabelle der gewünschten Struktur angezeigt.Mit dem SDK-Tool xsd.exe habe ich auch erfolgreich eine C# DataSet-Klasse erstellen können (view150.cs).
Durch:
TK_Auswertung.NewDataSet._TableDataTable view150 = new NewDataSet._TableDataTable();
kann ich eine Instanz der typisierten DataTabel erzeugen.
Doch wie befülle ich jetzt diese Tabelle? Ein DataTabel-Adapter gibt es nicht.
Fred.
-
Hallo Fred,
kann man vielleicht machen, wäre mir aber viel zu viel Arbeit nur um eine Abfrage zum laufen zu kriegen ;()
Probiere doch mal den anderen Vorschlag aus: Erstelle aus der Abfrage eine Prozedur und verwende diese. Das geht dann relativ stressfrei und ist leichter wartbar bei späteren Änderungen.
Gruß Elmar
- Als Antwort markiert perlfred Montag, 14. Oktober 2013 12:22
-
Hallo Fred,
Es handelt sich dabei um keine Literale (im Gegensatz zu Access wo es erforderlich ist).
Die "Anführungszeichen" funktionieren nur, wenn SET QUOTED_IDENTIFIER ON gesetzt ist (im Standard und empfohlen: ON). Denn dienen sie wie [] zum Abgrenzen von Bezeichnern. Und sollte mal OFF als Einstellung vorkommen, gibt es Probleme:
SET QUOTED_IDENTIFIER ON -- OFF GO SELECT TOP (1) DATEPART(year, OrderDate), DATEPART("year", ShippedDate), -- fehler bei QUOTED_IDENTIFIER OFF DATEPART([year], RequiredDate) FROM Northwind.dbo.Orders
(Wenn Du oben die SET Anweisung auf OFF einstellst, so gibt es einen Fehler).
Eckige Klammern funktionieren immer, aber da es sich um Schlüsselwörter handelt, sollte man sich die auch ersparen.
Gruß Elmar
-
Hallo Elmar,
da ich mich bei dem verwendeten DBMS nicht zu 100% auf den MS-SQL-Server festlegen will/kann habe ich die Variante, dyn. erzeugte DataTabel/Table-Adapter mal bis zu einem positiven Ergebnis durchgespielt, aber du hattest natürlich wieder einmal recht, es erzeugt jede Menge Code und ist schlecht wartbar:
TK_Auswertung.NewDataSet.TabView_150DataTable view150 = new NewDataSet.TabView_150DataTable(); // Instanz der typisierten Tabelle aus dem exportiertem XSD-Schema verwenden // Dyn. Verbindung zum SQL-Server + Abfrage + TableAdapter erstellen System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = "Data Source=REPORT2;Initial Catalog=TK;Integrated Security=True"; System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.Connection = con; string zSQL = "SELECT "; zSQL += "DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)) as DATUM_BASIS, "; zSQL += "convert(char(10), DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)), 104) as DATUM, "; zSQL += "Datename(dw, DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) as WO_TAG, "; zSQL += "Datepart(hh, DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) as STUNDE, "; zSQL += "GEN.SP_C + GEN.SP_D + GEN.SP_F as ANRUFE_GES, "; zSQL += "GEN.SP_T as ANRUFE_AG, "; zSQL += "GEN.SP_AU as ABBRUECHE, "; zSQL += "round( case when (GEN.SP_C + GEN.SP_D + GEN.SP_F) = 0 then 0 else (GEN.SP_AU * 1.0 / (GEN.SP_C + GEN.SP_D + GEN.SP_F) * 1.0) * 100 end ,2) as ABBRUCH_PRZ, "; zSQL += "GEN.SP_BG as DURCH_DAUER_GESPRAECH, "; zSQL += "GEN.SP_BN as DURCH_WARTE_ABGEBR_GESPR, "; zSQL += "null as nDURCH_DAUER_GESPRAECH, "; zSQL += "null as nDURCH_WARTE_ABGEBR_GESPR "; zSQL += "FROM TK.dbo.NR NR "; zSQL += "LEFT OUTER JOIN "; zSQL += " (SELECT top 24 @STUNDE_VON + NR.NR as STUNDE "; zSQL += " FROM TK.dbo.NR NR "; zSQL += " WHERE NR.NR <= @STUNDE_BIS - @STUNDE_VON "; zSQL += " ORDER BY 1) ZEIT ON 1=1 "; zSQL += "LEFT OUTER JOIN TK.dbo.GENERAL_DAT GEN ON GEN.DATUM = DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON)) "; zSQL += "WHERE NR.NR <= datediff(day, @DATUM_VON, @DATUM_BIS) "; zSQL += "and Datepart(dw, DATEADD(HOUR, ZEIT.STUNDE, DATEADD(DAY, NR.NR, @DATUM_VON))) "; zSQL += "IN (case when @WOTAG_MO = 1 THEN 1 else 0 end , case when @WOTAG_DI = 1 THEN 2 else 0 end , "; zSQL += " case when @WOTAG_MI = 1 THEN 3 else 0 end , case when @WOTAG_DO = 1 THEN 4 else 0 end , "; zSQL += " case when @WOTAG_FR = 1 THEN 5 else 0 end , case when @WOTAG_SA = 1 THEN 6 else 0 end , "; zSQL += " case when @WOTAG_SO = 1 THEN 7 else 0 end) "; zSQL += "ORDER BY 1"; cmd.CommandText = zSQL; cmd.Parameters.Add("@DATUM_VON", System.Data.SqlDbType.DateTime); cmd.Parameters.Add("@DATUM_BIS", System.Data.SqlDbType.DateTime); cmd.Parameters.Add("@STUNDE_VON", System.Data.SqlDbType.Int); cmd.Parameters.Add("@STUNDE_BIS", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_MO", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_DI", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_MI", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_DO", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_FR", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_SA", System.Data.SqlDbType.Int); cmd.Parameters.Add("@WOTAG_SO", System.Data.SqlDbType.Int); System.Data.DataSet ds = new System.Data.DataSet(); System.Data.SqlClient.SqlDataAdapter adap150 = new System.Data.SqlClient.SqlDataAdapter(); adap150.SelectCommand = cmd; adap150.FillSchema(ds, System.Data.SchemaType.Source); System.Data.DataColumn colDATUM_BASIS = ds.Tables[0].Columns["DATUM_BASIS"]; System.Data.DataColumn colDATUM = ds.Tables[0].Columns["DATUM"]; System.Data.DataColumn colWO_TAG = ds.Tables[0].Columns["WO_TAG"]; System.Data.DataColumn colSTUNDE = ds.Tables[0].Columns["STUNDE"]; System.Data.DataColumn colANRUFE_GES = ds.Tables[0].Columns["ANRUFE_GES"]; System.Data.DataColumn colANRUFE_AG = ds.Tables[0].Columns["ANRUFE_AG"]; System.Data.DataColumn colABBRUECHE = ds.Tables[0].Columns["ABBRUECHE"]; System.Data.DataColumn colABBRUCH_PRZ = ds.Tables[0].Columns["ABBRUCH_PRZ"]; System.Data.DataColumn colDURCH_DAUER_GESPRAECH = ds.Tables[0].Columns["DURCH_DAUER_GESPRAECH"]; System.Data.DataColumn colDURCH_WARTE_ABGEBR_GESPR = ds.Tables[0].Columns["DURCH_WARTE_ABGEBR_GESPR"]; System.Data.DataColumn colnDURCH_DAUER_GESPRAECH = ds.Tables[0].Columns["nDURCH_DAUER_GESPRAECH"]; System.Data.DataColumn colnDURCH_WARTE_ABGEBR_GESPR = ds.Tables[0].Columns["nDURCH_WARTE_ABGEBR_GESPR"];
cmd.Parameters["@DATUM_VON"].SqlValue = dt_von; cmd.Parameters["@DATUM_BIS"].SqlValue = dt_bis; cmd.Parameters["@STUNDE_VON"].SqlValue = nAUSW_STUNDE_VON; cmd.Parameters["@STUNDE_BIS"].SqlValue = nAUSW_STUNDE_BIS; cmd.Parameters["@WOTAG_MO"].SqlValue = nWOTAG_MO; cmd.Parameters["@WOTAG_DI"].SqlValue = nWOTAG_DI; cmd.Parameters["@WOTAG_MI"].SqlValue = nWOTAG_MI; cmd.Parameters["@WOTAG_DO"].SqlValue = nWOTAG_DO; cmd.Parameters["@WOTAG_FR"].SqlValue = nWOTAG_FR; cmd.Parameters["@WOTAG_SA"].SqlValue = nWOTAG_SA; cmd.Parameters["@WOTAG_SO"].SqlValue = nWOTAG_SO; adap150.Fill(view150); // Daten abrufen
Die Prozedur ist schnell erstellt und übersichtlich. Die Unterstützung durch den DataSet-Designer funktioniert auch wieder 100%ig, alles schön ;-).
Vielen Dank! für deine Hilfe.
Fred.
Sorry ... weil es mich ein wenig beschäftigt hatt...
von der Instanz des typisierten DataSet's kommt man nicht auf das Command-Objekt oder den def. TabelAdapter oder??
- Bearbeitet perlfred Montag, 14. Oktober 2013 12:44 Nachtrag