What is the difference between ExecuteReader,ExecuteNonQuery
and ExecuteScalar.
Answer Posted / umarali
ExecuteNonQuery():
1.will work with Action Queries only
(Create,Alter,Drop,Insert,Update,Delete).
2.Retruns the count of rows effected by the Query.
3.Return type is int
4.Return value is optional and can be assigned to an integer
variable.
Example-1 for ExecuteNonQuery Method -Insert:
SqlCommand cmd = new SqlCommand("Insert Into SampleTable
Values('1','2')",con);
//con is the connection object
con.Open();
cmd.ExecuteNonQuery(); //The SQL Insert Statement gets executed
Example-2 for ExecuteNonQuery Method - Update:
public void UpdateEmployeeEmail()
{
SqlConnection conn = new SqlConnection(connString))
String sqlQuery = "UPDATE Employee SET
empemail='umar.ali@xyz.com' WHERE empid=5;
SqlCommand cmd = new SqlCommand(sqlQuery, conn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
return count;
}
ExecuterReader():
1.will work with Action and Non-Action Queries (Select)
2.Returns the collection of rows selected by the Query.
3.Return type is DataReader.
4.Return value is compulsory and should be assigned to an
another object DataReader.
Example for ExecuteReader Method:
Here, ExecuteReader is used to get set of records by
specified query, namely, "select * from emp"
SqlConnection con = new SqlConnection(constr); //constructor
can be connection of string.
SqlCommand cmd = new SqlCommand ("select * from emp", con);
con.Open();
SqlDataReader dr = cmd. ExecuteReader (CommandBehavior.
CloseConnection); //Implicitly closes the connection because
CommandBehavior. CloseConnection was specified.
while(dr.Read())
{
Console.WriteLine (dr.GetString(0));
}
dr.Close();
ExecuteScalar():
1.will work with Non-Action Queries that contain aggregate
functions.
2.Return the first row and first column value of the query
result.
3.Return type is object.
4.Return value is compulsory and should be assingned to a
variable of required type.
Example-1 for ExecuteScalar Method:
This returns only one value that is first column value of
the first row in the executed query
public int getSomeProdId()
{
int count=0;
SqlConnection conn = new SqlConnection(connString))
String sqlQuery = "SELECT COUNT(*) FROM dbo.region";
SqlCommand cmd = new SqlCommand(sqlQuery, conn);
try
{
conn.Open();
//Since return type is System.Object, a typecast
is must
count = (Int32)cmd.ExecuteScalar();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
return count;
}
Example-2 for ExecuteScalar Method:
This returns one value only, no recordsets.
cmd.CommandText = "Select Name, DOB, from Emp where ID=1";
Dim strName As string = cmd.ExecuteScalar.ToString
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
Why would anyone need to implement their own hashtable or linked list?
What is a postback url?
What is form method?
Can anyone please tell me that the question posted on this website are Sufficient for the interview with 2+ year experience in .net
What are sessions and cookies?
How you can stop the validation of ASP.NET controls from client side?
What is the difference between response.redirect and server.transfer?
Define caching.
how to implement some securty aspect in our application i.e 1.cookie poisioning. 2.data encryption. 3.forcefull browsing 4.sql/code injection 5.securing web app by using web services ........my question is how to implement these thing in our application is this done by hard coding or by help of some tool
What is the base class from which web forms are inherited?
How do we implement bundling in MVC?
How many types of Cookies are available in ASP.NET?
What is asp.net? How is it different from asp?
Is session stored in browser?
What is page fragment caching?