Avatar billede havmaage Juniormester
14. november 2009 - 14:04 Der er 13 kommentarer og
1 løsning

kan man skrive sp til sql server i c#

Hejsa
Jeg kunne godt tænke mig at skrive en stored procedure og en function i c#

jeg har arbejdet lidt med at skrive sp og funtioner i databasens interface, men synes det kunne være sjovt at prøve at skrive en i c#
er der nogen der har en kort toturial eller eks. på en ultra simpel sp og en ultra simpel funktion og hvordan den integreres i en sql server
Avatar billede arne_v Ekspert
14. november 2009 - 14:07 #1
SP:

using System;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.Data.SqlClient;

using Microsoft.SqlServer.Server;

namespace E
{
    public class DemoSP
    {
        public static void ShowT1()
        {
            SqlPipe sp = SqlContext.Pipe;
            SqlConnection con = new SqlConnection("Context Connection=true");
            con.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM T1", con);
            SqlDataReader rdr = cmd.ExecuteReader();
            sp.Send(rdr);
            rdr.Close();
            con.Close();
            sp.Send("Done"); 
        }
    }
}
Avatar billede arne_v Ekspert
14. november 2009 - 14:07 #2
F:

using System;
using System.Globalization;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.Data.SqlClient;

using Microsoft.SqlServer.Server;

namespace E
{
    public class DateTimeUtil
    {
        [SqlFunction]
        public static SqlString XFormat(DateTime dt, string fmt)
        {
            return dt.ToString(fmt, new CultureInfo("en-US"));
        }
        [SqlFunction]
        public static SqlDateTime XParse(string s, string fmt)
        {
            DateTime res;
            if(DateTime.TryParseExact(s, fmt, new CultureInfo("en-US"),
                                      DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite,
                                      out res))
            {
                return res;
            }
            else
            {
                return SqlDateTime.Null;
            }
        }
    }
}
Avatar billede gadensgaard Nybegynder
14. november 2009 - 14:25 #3
Alternativt kan du kigge på .NET interfacet til SQL - LinQ. Så kan du tilgå og arbejde på dit SQL data direkte fra C#.
Avatar billede Slettet bruger
14. november 2009 - 17:38 #4
Mon ikke spørgeren mener Extented Stored procedure som jo har en API?

Og hvilken SQL server er der tale om ?
Avatar billede arne_v Ekspert
14. november 2009 - 18:07 #5
Han må vel mene en CLR SP/UDF.
Avatar billede havmaage Juniormester
15. november 2009 - 13:07 #6
mange tak for jeres indlæg, jeg synes det er nogle rigtig gode eksempler i har givet mig, det kan jeg arbejde videre med. Jeg ved at der findes noget der hedder linQ ( er det ikke noget lignende MS DAO, noget jeg husker fra mine VB 5.0 dage many years ago )
er CLR ikke en del af linQ ?
Avatar billede arne_v Ekspert
15. november 2009 - 15:53 #7
CLR SP er en SP skrevet i C#, VB.NET eller andet .NET sprog (CLR er .NET runtime).

LINQ er (i denne sammenhæng) et alternativ til SQL embedded direkte i C# (eller andet) kode. Det har ikke noget med DAO at gøre.
Avatar billede havmaage Juniormester
25. november 2009 - 11:19 #8
Ups skal have lukket spørgsmålet endnu engang tak for indlæggende
faktisk er jeg begyndt at kigge på entity framework og linq
arne_v vil du ligge et svar så lukker jeg.
Avatar billede arne_v Ekspert
26. november 2009 - 04:03 #9
svar

bemærk dog at jeg ikke var den første som bragte LINQ på banen
Avatar billede havmaage Juniormester
26. november 2009 - 09:39 #10
Det er selvfølgelig rigtigt, hvis gadensgaard også vil ligge et svar fordeler jeg point.
Avatar billede arne_v Ekspert
04. december 2009 - 20:37 #11
gadensgaard ?
Avatar billede gadensgaard Nybegynder
09. december 2009 - 12:39 #12
jeg får åbenbart kun mails når der bliver accepteret svar.. jeg kan kun kommentere nu
Avatar billede havmaage Juniormester
09. december 2009 - 13:18 #13
jeg tror desværre ikke det er muligt at trække et accepteret svar tilbage og derefter fordele points ? Kan evt. oprette proforma spg. herinde som du kan svare på, men jeg ved ikke om det er imod foreskrifterne og diverse uskrevne regler omkring adfærd herinde.
Avatar billede gadensgaard Nybegynder
09. december 2009 - 13:28 #14
Skidt, jeg står over i denne omgang :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester