工作的时候我用的最多的是Orcal数据库,但是写小程序和Dome的时候,我喜欢用Sql Server数据库,SqlHelper类是最基本的与数据库交互的类,记录下来,下次用的时候直接拷贝。
public static class SqlHelper { static string connection = "Data Source=.;Initial Catalog=Exercise;Integrated Security=True";//数据库连接字符串 /// <summary> /// 返回受影响的行数 /// </summary> /// <param name="sql">sql语句</param> /// <param name="sp">参数</param> /// <returns></returns> public static int ExcuteNonQuery(string sql, params SqlParameter[] sp) { using (SqlConnection conn = new SqlConnection(connection)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.CommandText = sql; cmd.Connection = conn; cmd.Parameters.AddRange(sp); return cmd.ExecuteNonQuery(); } } } /// <summary> /// 返回首行首列的值 /// </summary> /// <param name="sql">sql语句</param> /// <param name="sp">参数</param> /// <returns></returns> public static int ExcuteScalre(string sql, params SqlParameter[] sp) { using (SqlConnection conn = new SqlConnection(connection)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddRange(sp); return (int)cmd.ExecuteScalar(); } } } /// <summary> /// 返回DataTable类型的数据 /// </summary> /// <param name="sql">sql语句</param> /// <param name="sp">参数</param> /// <returns></returns> public static DataTable ExcuteDataTable(string sql, params SqlParameter[] sp) { using (SqlConnection conn = new SqlConnection(connection)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddRange(sp); DataTable dt = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { adapter.Fill(dt); } return dt; } } } /// <summary> /// 返回SqlDataReader /// </summary> /// <param name="sql">sql语句</param> /// <param name="sp">参数</param> /// <returns></returns> public static SqlDataReader ExcuteSqlDataReader(string sql, params SqlParameter[] sp) { SqlConnection conn = new SqlConnection(connection); conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddRange(sp); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } }
ExcuteNonQuery(): 查询语句不能用,如果用ExcuteNonQuery执行查询语句,返回值会是 -1,UPDATE、INSERT 和 DELETE用的最多.
ExcuteScalre(): 一般情况下,查询语句用多一点。