Depending on the data provider, DataReader can be divided into 4 categories, such as Sqldatareader,oledbdatareader,olbedatareader and OracleDataReader.
A clever metaphor: if the database is a reservoir, then SqlConnection is the water tap, SqlCommand is a pump, SqlDataReader is the water pipe, SqlDataReader can only read one record at a time, Whenever SqlDataReader calls the Read method, it gets a record from the database, and the Read method returns false, using the Wihle loop to invoke the Read method of SqlDataReader to read the records in the database. The way the SqlDataReader works means that you keep a connection to the database while reading the database, and if you disconnect at this point, the data fails to read.
Call the ExecuteScalar method for the SqlCommand object to query the number of records in the table, SqlCommand object calls the Executedatareader method, querying all records in the table
Source:
Using system;using system.collections.generic;using system.data;using system.data.sqlclient;using System.Linq;using System.text;using System.threading.tasks;namespace sqltest{class Program {static void Main (string[] args) {///connection Database String connection = "server= Pinchamp \\sqlexpress;database=db_test; Trusted_connection=true "; SqlConnection sc = new SqlConnection (connection); Sc. ConnectionString = connection; try {sc. Open (); Open the Database connection Console.WriteLine ("Already Open database connection!"); SqlCommand cmd = new SqlCommand ("SELECT * from Db_student", SC); SqlDataReader SDR = cmd. ExecuteReader (); Executes the Find record command while (SDR. Read ()) {Console.WriteLine ("{0}{1}{2}{3}", Sdr[0], sdr[1], sdr[2], sdr[3]); }//start:4. Querying database records///////////////////////////////////////////////////////////////* SqlcoMmand cmd = new SqlCommand ("SELECT count (*) from Db_student", SC); int i = (int) cmd. ExecuteScalar ();//The command Console.WriteLine to perform a lookup record ("{0} data in the table", i.ToString ()); *///end:4. Querying database records//////////////////////////////////////////////////////////////////start:3. Modifying the code for database data///////// /* SqlCommand cmd = new SqlCommand ("UPDATE db_student SET St udent_grade=99 where [email protected] ", SC); Create the SqlCommand object cmd. Parameters.Add ("@name", SqlDbType.VarChar). Value = "Pan"; int i = cmd. ExecuteNonQuery (); if (i > 0) Console.WriteLine ("Modified successfully!"); *///end:3. Code///////////////////////////////////////////////////////////start:1 to modify database data. Delete the database record code snippet///////////// /* String cmdtext = "DELETE from db_student WHERE [Email pro Tected] "; SqlCommand cmd = new SqlCommand (Cmdtext, SC); Cmd. ParametERs. ADD ("@name", SqlDbType.VarChar). Value = "Pan"; int i = cmd. ExecuteNonQuery (); if (i > 0) Console.WriteLine ("Delete record successfully!"); *///end:1. Deleting a database record code snippet///////////////////////////////////////////////////////////start:2. Add the code for the record//////////////// /* SqlCommand cmd = new SqlCommand ();//Create SqlCommand Object Cmd. CommandType = CommandType.Text; Sets the Execute text command cmd. Connection = SC; Sets the object property of CMD. CommandText = "INSERT into Db_student (student_name,student_age,student_address,student_grade) VALUES (@n Ame, @age, @address, @grade) "; Add a parameter and assign a value cmd to the parameter. Parameters.Add ("@name", SqlDbType.VarChar, 10). Value = "Pan"; Cmd. Parameters.Add ("@age", SqlDbType.Int). Value = 19; Cmd. Parameters.Add ("@address", SqlDbType.VarChar). Value = "Wuhan"; Cmd. Parameters.Add ("@grade", SqlDbType.Int). Value = 100; Incht i = cmd. ExecuteNonQuery (); Execute database Add record command if (i > 0) Console.WriteLine ("Add record Success"); *//////console output add record//end:2. Add record Code/////////////////////////////////////////////////////////////////} c Atch (Exception ex) {Console.WriteLine ("Open database error: {0}", ex. Message); } finally {SC. Close (); Console.WriteLine ("Database connection closed!"); } System.Console.ReadLine (); } }}
Operation Result: