Autor Beitrag
sailer86
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 21.01.08 15:29 
Hallo,

ich habe ein Problem und weis echt nicht mehr weiter. Ich habe in C# eine Stored Procedure geschrieben die die Daten aus der Datenbank ausliest. Jetzt kann ich leider mit den ausgelesenen Daten nicht an eine andere Methode übergeben.

Mein Code ist folgender:

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:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;


public partial class StoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure]
    public static void ParameterDB(out SqlString beschleunigungX, out SqlString beschleunigungY, out SqlString vmaxX, out SqlString vmaxY, out SqlString verzoegerungX, out SqlString verzoegerungY, out SqlString ebeneParameter, out SqlString reiheParameter)
    {
        using (SqlConnection con = new SqlConnection("context connection = true"))
        {
            beschleunigungX = "";
            beschleunigungY = "";
            vmaxX = "";
            vmaxY = "";
            verzoegerungX = "";
            verzoegerungY = "";
            ebeneParameter = "";
            reiheParameter = "";
            con.Open(); //Öffnen der Verbindung
            SqlCommand cmd = new SqlCommand("SELECT VmaxX, VmaxY, BeschleunigungX, BeschleunigungY, VerzoegerungX, VerzoegerungY, FachHoehe, Fachbreite FROM Parameter", con);

            SqlDataReader reader = cmd.ExecuteReader();

            using (reader)
            {
                while (reader.Read())
                {
                    vmaxX = (SqlString)(reader.GetSqlString(0));

                    vmaxY = (SqlString)(reader.GetSqlString(1));

                    beschleunigungX = (SqlString)(reader.GetSqlString(2));

                    beschleunigungY = (SqlString)(reader.GetSqlString(3));

                    verzoegerungX = (SqlString)(reader.GetSqlString(4));

                    verzoegerungY = (SqlString)(reader.GetSqlString(5));

                    ebeneParameter = (SqlString)(reader.GetSqlString(6));

                    reiheParameter = (SqlString)(reader.GetSqlString(7));
                }
            }
            reader.Close();
            con.Close();


            //return vmaxX; 
         
        }
    }
}


Ich wollte anstatt void SqlString eingeben und unten dann ein return. Aber es kommt immer die Fehlermeldung das nur SqlInt oder void geht. Leider bringt mir SqlInt gar nichts weil die Daten in der DB kein int sind.

Ist es auch noch anders möglich die Daten an eine andere Methode zu übergeben oder das die andere Methode diese Daten aufruft? Wenn ja wie? Freu mich über jede Vorschläge.

LG
sailer


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (C# / .NET) verschoben am Mo 21.01.2008 um 14:40
Dave86
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16


C# (VS 2005 / VS2008)
BeitragVerfasst: Mo 21.01.08 18:11 
Hi Sailer 86.

Wieso willst du eigentlich Sqlstrings verwenden??
nimm doch einfach normale...

MfG
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 21.01.08 21:54 
user profile iconDave86 hat folgendes geschrieben:
nimm doch einfach normale...
Wenn nur void oder SqlInt erlaubt ist, wird das ihm herzlich wenig bringen...

@sailer86: Naja, das ist doch einfach eine Eigenschaft von SPs. Bietet sich da nicht eher eine UDF (SqlFunctionAttribute) an?