execute stored procedure with adonet

Page 1

Execute Stored Procedure med ADO.NET 'Indsæt ny kategori og hent KategoriID fra sql DB' myNerdStuff

Denne demo Class er lavet som et console program og kan 'ingenting', dvs. der er ingen gui med som kan bruges til at sende/hente data. Det er dog let at oprette en ASP.NET eller Windows form og indsætte et par knapper og tekstboxe.

Opret en Tabel i Databasen Her i eksemplet bruges SQL Express, som følger med visual studio. Til visual studio express kan der også downloades en gratis web platform installer, der indeholder SQL Epress. http://www.microsoft.com/express/Downloads/#2010-Web-Platform-Installer Opret tabel i sql databasen: Navn: VarerDataBasen Opret to Stored Procedure: spHentKategorier spIndsætKategori Opret med Execute query: CREATE PROCEDURE dbo.spHentKategorier AS SELECT * FROM tblKategori CREATE PROCEDURE dbo.spIndsætKategori @KategoriNavn nvarchar(50), @KatID int OUTPUT AS INSERT INTO tblKategori (KategoriNavn) VALUES(@KategoriNavn) SELECT @KatID = SCOPE_IDENTITY()

.Gratis guide fra myNerdStuff, platform: NET 4 / C# - Version 30-11-10

side 1 af 3


Execute Stored Procedure med ADO.NET 'Indsæt ny kategori og hent KategoriID fra sql DB' myNerdStuff

Indhold af Program.aspx I 'reallife' projekt vil man lave ens database adgang som seperate class libs eller dll's hvis det er et windows program man skal bruge det til.

using System; using System.Data.SqlClient; // Vigtig using System.Data; // Vigtig class SimpleProductsSelector { //connectingstring bør flyttes til web.config i asp.net projekter og app.config i windows applikationer static string connectionString = @"Data Source=.\sqlexpress;" + "Initial Catalog=VarerDataBasen;Integrated Security=SSPI;"; static void Main(string[] args) { int KatID = IndsætNyKategori("Boremaskiner"); Console.WriteLine("Ny kategori er oprettet med ID: {0}", KatID); HentKategorier(); } static void HentKategorier() { SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("spHentKategorier", con); // Stored Procedure navnet angives her cmd.CommandType = CommandType.StoredProcedure; // CommandType sættes her til Stored procedure con.Open(); SqlDataReader myReader = cmd.ExecuteReader(); while (myReader.Read()) { Console.WriteLine("ID: {0} - {1}", myReader["KategoriID"], myReader["KategoriNavn"]); } myReader.Close(); con.Close(); } static int IndsætNyKategori(string KategoriNavn) { SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("spIndsætKategori", con); // Stored Procedure navnet angives her cmd.CommandType = CommandType.StoredProcedure; // CommandType sættes her til Stored procedure // Inputparameter SqlParameter param = new SqlParameter("@KategoriNavn", SqlDbType.NVarChar, 50); .Gratis guide fra myNerdStuff, platform: NET 4 / C# - Version 30-11-10

side 2 af 3


Execute Stored Procedure med ADO.NET 'Indsæt ny kategori og hent KategoriID fra sql DB' myNerdStuff

param.Value = KategoriNavn; cmd.Parameters.Add(param); // Outputparameter param = new SqlParameter("@KatID", SqlDbType.Int, 4); param.Direction = ParameterDirection.Output; cmd.Parameters.Add(param); con.Open(); cmd.ExecuteNonQuery(); con.Close(); int newKatID = Convert.ToInt32(cmd.Parameters["@KatID"].Value); // Udlæsning af OUTPUT parameter fra stored procedure,det nye kategori ID return newKatID; } }

.Gratis guide fra myNerdStuff, platform: NET 4 / C# - Version 30-11-10

side 3 af 3


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.