Add a custom SqlHelper class to your project that simplifies the code to connect to the database:
respectively:
ExecuteNonQuery ();
ExecuteScalar ();
Executedatatables ();
There are three versions: the third version is better than the other.
Using system;using system.collections.generic;using system.linq;using system.text;using System.Configuration;using System.data.sqlclient;using System.data;namespace adonet2{class SqlHelper {private static string connstr = configurationmanager.connectionstrings["Dbconnstr"]. ConnectionString; The principle of encapsulation method: Put the invariable into the method, put the change in the parameter//First Edition disadvantage: cannot use parameter insertion public static int ExecuteNonQuery (String sql)//{//using (SqlConnection conn = new SqlConnect Ion (CONNSTR))//{//Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ())//{//cmd.commandtext = SQL; return CMD. ExecuteNonQuery (); }//}//}//public Static Object ExecuteScalar (String sql)//{//Usin G (SqlConnection conn = new SqlConnection (CONNSTR))//{//Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ())//{//cmd.commandtext = SQL; return CMD. ExecuteScalar (); }//}//}////is used only to execute query results less than SQL//public static DataTable executedatatable (string SQL)//{//using (SqlConnection conn = new SqlConnection (CONNSTR))///{// Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ())//{//cmd.commandtext = SQL; SqlDataAdapter adapter = new SqlDataAdapter (cmd); DataSet DataSet = new DataSet (); Adapter. Fill (DataSet); return DataSet. Tables[0]; // } // } ////}//second Edition, you can use parameters, but trouble public static int ExecuteNonQuery (string sql,sqlparameter[] parameters)//{//using (Sqlconnec tion conn = new SqlConnection (CONNSTR))//{//Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ())//{//cmd.commandtext = SQL; foreach (SqlParameter param in Parameters)////{////CMD. Parameters.Add (param); }//cmd. Parameters.addrange (Parameters); return CMD. ExecuteNonQuery (); }//}//}//public Static Object ExecuteScalar (string sql,sqlparameter[] parameters) {//using (SqlConnection conn = new SqlConnection (CONNSTR))//{//Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ())//{//cmd.commandtext = SQL; // Cmd. Parameters.addrange (Parameters); return CMD. ExecuteScalar (); }//}//}////is used only to execute query results less than SQL//public static DataTable executedatatable (string SQL, sqlparameter[] parameters)//{//using (SqlConnection conn = new SqlConnection (CONNSTR))// {//Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ())//{//cmd.commandtext = SQL; Cmd. Parameters.addrange (Parameters); SqlDataAdapter adapter = new SqlDataAdapter (cmd); DataSet DataSet = new DataSet (); Adapter. Fill (DataSet); return DataSet. Tables[0]; // } // } //}//Third Edition: Use length variable parameters to simplify public static int ExecuteNonQuery (string sql,params sqlparameter[] parameters) {using (Sqlconne Ction conn = new SqlConnection (CONNSTR)) {Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ()) {cmd.commandtext = SQL; foreach (SqlParameter param in Parameters)//{//cmd. Parameters.Add (param); } cmd. Parameters.addrange (Parameters); return CMD. ExecuteNonQuery (); }}} public static object ExecuteScalar (String sql, params sqlparameter[] parameters) { using (SqlConnection conn = new SqlConnection (CONNSTR)) {Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ()) {cmd.commandtext = SQL; Cmd. Parameters.addrange (PARameters); return CMD. ExecuteScalar (); The SQL public static DataTable executedatatable (String sql, params Sqlpa) is only used to execute query results that are less than rameter[] Parameters) {using (SqlConnection conn = new SqlConnection (connstr)) { Conn. Open (); using (SqlCommand cmd = conn. CreateCommand ()) {cmd.commandtext = SQL; Cmd. Parameters.addrange (Parameters); SqlDataAdapter adapter = new SqlDataAdapter (cmd); DataSet DataSet = new DataSet (); Adapter. Fill (DataSet); return DataSet. Tables[0]; } } } }}
Package of SqlHelper