Adodotnet Stored Procedure Mine

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Adodotnet Stored Procedure Mine as PDF for free.

More details

  • Words: 1,040
  • Pages: 19
************************************************************************* ******************************* In These Examples Student and Grade Tables have The Below Structure (or Close to That) Student(sid,fname,lname,phone) Grade(gid,ggrade,gStudentId) ************************************************************************* *******************************

-------------------------------------------------------------------------------------------------

Stored Procedure Sample:

CREATE PROCEDURE spIsCidRep @courseId nvarchar(50) AS BEGIN Select * From Course where cid = @courseId If @@RowCount = 0 Return 1 Else Return -1 END GO

------------------------------------------------------------------------------------------------Stored Procedure Sample With Output Variable:

CREATE PROCEDURE ShowSuppliers ( @txt varchar(50), @Name varchar (50) output, @Company varchar (50) output, @Country varchar (50) output ) AS BEGIN Select @Name = ContactName, @Company = CompanyName, @Country = Country from Suppliers Where Country like "%" + @txt + "%" END GO

------------------------------------------------------------------------------------------------RowCount Function in Stored Procedure;

Crete Procedure spStudentGrade( @stNum int, @fulname varchar(101) output, @grade int output ) As Begin Select @fulname = s.lname + "," + s.lname, @grade = g.grade from studend s, grade g where s.sid = @stNum and s.sid = g.studentId

if @@rowcount = 0 return -1

else return 1 End Go

------------------------------------------------------------------------------------------------Declare Variables in Stored Procedures:

Create Procedure spAvrage( @a int, @b int ) Ag Beging Declare @avg = (@a + @b)/2 End Go

------------------------------------------------------------------------------------------------Open a connection:

1. SqlConnection sqlConn = new SqlConnection(); sqlConn.ConnectionString = "server=localhost;database=myTestDb;uid=sa;pwd=''"; try { sqlConn.open();

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

2.

SqlConnection sqlConn = new SqlConnection("server=localhost;database=myTestDb;uid=sa;pwd=''"); try { sqlConn.open(); } Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

3. connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr);

try { sqlConn.open(); } Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Create a Command Object:

1.

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); SqlCommand sqlCmd = new SqlCommand(); sqlCmd.CommandText = "Select * From Student"; sql.Connection = sqlConn; SqlDataReader sqlreader = sqlCmd.ExecuteReader() while(sqlReader.read())

Console.WriteLine(sqlReader["sid"];

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

2.

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); sqlStr = "Select * From Student"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); SqlDataReader sqlreader = sqlCmd.ExecuteReader() while(sqlReader.read()) Console.WriteLine(sqlReader["sid"];

} Catch(SqlException ex) { Console.WriteLine(ex.Message);

} finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Doing a Select Query:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); sqlStr = "Select * From Student"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); SqlDataReader sqlreader = sqlCmd.ExecuteReader() while(sqlReader.read()) Console.WriteLine(sqlReader["sid"];

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close();

}

------------------------------------------------------------------------------------------------Doing a Delete Query:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); sqlStr = "delete From Student where sid=2453202"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); sqlCmd.ExecuteNonQuery()

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Doing an Insert Query:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open() sqlStr = "Insert Into Student values(2453202, 'hooman', 'shamsborhan', '040094506')"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); sqlCmd.ExecuteNonQuery()

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Doing an Update Query:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open() sqlStr = "update student set sPhone = '0400945506' where sid=2453202";

SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); sqlCmd.ExecuteNonQuery()

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Doing a Select Query With Aggregate Functions:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); sqlStr = "Select max(grade) from Grade"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); maxGrade = (decimal) sqlCmd.ExecuteScalar()

} Catch(SqlException ex) {

Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Having More Than One Query:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); sqlStr = "Select * From Student"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); SqlDataReader sqlreader = sqlCmd.ExecuteReader(); while(sqlReader.read()) Console.WriteLine(sqlReader["sid"];

SqlCmd.CommandText = "Insert Into Student values(2453202, 'hooman', 'shamsborhan')"; sqlCmd.ExecuteNonQuery();

sqlCmd.CommandText = "delete from student where sid = 2453202" sqlCmd.ExecuteNonQuery()

. .

.

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Using Parameters in a Query:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); sqlStr = "Select * From Student where sid = @stNo1 or sid = @stNo2"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn);

sqlCmd.Parameters.Add("@stNo1", SqlDbType.Int); sqlCmd.Parameters.Add("@stNo2", SqlDbType.Int);

sqlCmd.Parameters["@stNo1"].Value = 2453202; sqlCmd.Parameters["@stNo2"].Value = 2453200;

SqlDataReader sqlreader = sqlCmd.ExecuteReader(); while(sqlReader.read()) Console.WriteLine(sqlReader["sid"];

SqlCmd.CommandText = "Insert Into Student values(2453202, 'hooman', 'shamsborhan')"; sqlCmd.ExecuteNonQuery();

sqlCmd.CommandText = "delete from student where sid = 2453202"; sqlCmd.ExecuteNonQuery()

. . .

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Having a Transaction:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr);

try { sqlConn.open(); SqlTransaction sqlTrans = sqlConn.BeginTransaction(IsolationLevel.serializable, "myTrans");

sqlStr = "update student set sPhone = '0400945506' where sid=2453202"; SqlCommand sqlCmd = new SqlCommand(sqlStr, sqlConn); sqlCmd.ExecuteNonQuery();

SqlCmd.CommandText = "update grade set grade = grade + (grade*20)/100 where gstudentId = 2453202"; sqlCmd.ExecuteNonQuery(); . . .

sqlTrans.Commit();

} Catch(SqlException ex) { sqlTrans.RollBack(); Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Calling a Stored Procedure:

Consider This Stored Procedure in Ms SqlServer:

Create Procedure spUpdateGrades

As Begin update grade set grade = (grade*20)/100 End Go

Now We Want to Call This Stored Procedure Within C#:

1.

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); SqlCommand sqlCmd = new SqlCommand(); sqlCmd.Connection = sqlConn sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.CommandText = "spUpdateGrades"

sqlCmd.ExecuteNonQuery();

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

2.

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); SqlCommand sqlCmd = new SqlCommand("spUpdateGrades",sqlConn); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.ExecuteNonQuery();

} Catch(SqlException ex) { Console.WriteLine(ex.Message); }

finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Passing and Getting Parametes From a Stored Procedure:

Consider This Stored Procedure in Ms SqlServer:

Crete Procedure spStudentGrade( @stNum int, @fulname varchar(101) output, @grade int output ) As Begin Select @fulname = s.lname + "," + s.lname, @grade = g.grade from studend s, grade g where s.sid = @stNum and s.sid = g.studentId

if @@rowcount = 0 return -1 else return 1 End Go

Now We Want to Use This Stored Procedure Within C#:

connStr = "server=localhost;database=myTestDb;uid=sa;pwd=''"; SqlConnection sqlConn = new SqlConnection(connStr); try { sqlConn.open(); SqlCommand sqlCmd = new SqlCommand("spStudentGrade", sqlConn); sqlCmd.CommandType = CommandType.StoredProcedure;

SqlParameters sqlParam;

sqlParam = sqlCmd.Parameters.Add("stNum", SqlDbType.Int); sqlParam.Direction = ParameterDirection.Input; sqlParam.value = 2453202;

sqlParam = sqlCmd.Parameters.Add("@fulName", SqlDbType.Varchar, 101); sqlParam.Direction = ParameterDirection.Output;

sqlParam = sqlCmd.Parameters.Add("@grade", SqlDbType.Int); sqlParam.Direction = ParameterDirection.Output;

sqlParam = sqlCmd.Parameters.Add("@retVal", SqlDbType.Int) sqlParam.Direction = ParameterDirection.ReturnValue;

sqlCmd.ExecuteNonQuery();

if (int)sqlCmd.Parameters["@retVal"] = 1

Console.WriteLine("Full Name:" + sqlCmd.Parameters["@fulname"].Value); Console.WriteLine("Grade:" + sqlCmd.Parameters["@grade"].Value.ToString()); else Console.WriteLine("There is No Record");

} Catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { sqlConn.close(); }

------------------------------------------------------------------------------------------------Input Parameter For a Stored Procedure:

For an Input Parameter Instead of Saying:

sqlParam = sqlCmd.Parameters.Add("stNum", SqlDbType.Int); sqlParam.Direction = ParameterDirection.Input; sqlParam.value = 2453202;

We Could Also Say:

sqlCmd.Parameters.Add("@stNo", 2453202);

Related Documents

Stored Procedure
June 2020 14
Stored Procedure
May 2020 15
Stored Procedure
November 2019 32
Stored Procedure
June 2020 15
Stored Procedure
November 2019 24