C# 数据库的基本操作(SQL Server)


一、首先是与sqlserver的基本操作

连接字符在配置文件中是这样写的

  1. <connectionStrings>  
  2.     <add name="ConnStr" connectionString="data source=xp-ba785745002d;database=databaseonline;Uid=sa;pwd=sasa"/>  
  3. </connectionStrings>  

基本操作类如下:

  1. public class SQLHelper  
  2. {  
  3.     private SqlConnection sqlCon = null;  
  4.     private SqlCommand cmd = null;  
  5.     private SqlDataReader sdr = null;  
  6.     public SQLHelper()  
  7.     {  
  8.         sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);  
  9.     }  
  10.   /// <summary>   
  11.   /// 打开数据库连接   
  12.   /// </summary>   
  13.   /// <returns></returns>   
  14.     private SqlConnection GetCon()  
  15.     {  
  16.         if (sqlCon.State==ConnectionState.Closed)  
  17.         {  
  18.           sqlCon.Open();    
  19.         }  
  20.         return sqlCon;  
  21.     }  
  22.     /// <summary>   
  23.     /// 执行不带参数的增删改sql语句或存储过程   
  24.     /// </summary>   
  25.     /// <param name="cmdText">增删改sql语句或存储过程</param>   
  26.     /// <param name="ct">命令类型</param>   
  27.     /// <returns></returns>   
  28.     public int ExecuteNonQuery(string cmdText, CommandType ct)  
  29.     {  
  30.         int rex;  
  31.         try  
  32.         {  
  33.         SqlCommand sqlcom = new SqlCommand(cmdText,GetCon());  
  34.         sqlcom.CommandType = ct;  
  35.         rex =sqlcom.ExecuteNonQuery();  
  36.         }  
  37.         catch (Exception ex)  
  38.         {  
  39.   
  40.             throw ex;  
  41.         }  
  42.         finally  
  43.         {  
  44.             if (sqlCon.State==ConnectionState.Open)  
  45.             {  
  46.                sqlCon.Close();    
  47.             }  
  48.         }  
  49.         return rex;  
  50.     }  
  51.     /// <summary>   
  52.     ///  执行带参数的增删改SQL语句或存储过程   
  53.     /// </summary>   
  54.     /// <param name="cmdText">增删改SQL语句或存储过程</param>   
  55.     /// <param name="ct">命令类型</param>   
  56.     /// <returns></returns>   
  57.     public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)  
  58.     {  
  59.         int res;  
  60.         using (cmd = new SqlCommand(cmdText, GetCon()))  
  61.         {  
  62.             cmd.CommandType = ct;  
  63.             cmd.Parameters.AddRange(paras);  
  64.             res = cmd.ExecuteNonQuery();  
  65.         }  
  66.         return res;  
  67.     }  
  68.     /// <summary>   
  69.     ///  执行带参数的查询SQL语句或存储过程   
  70.     /// </summary>   
  71.     /// <param name="cmdText">查询SQL语句或存储过程</param>   
  72.     /// <param name="paras">参数集合</param>   
  73.     /// <param name="ct">命令类型</param>   
  74.     /// <returns></returns>   
  75.     public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)  
  76.     {  
  77.         DataTable dt = new DataTable();  
  78.         cmd = new SqlCommand(cmdText,GetCon());  
  79.         cmd.CommandType = ct;  
  80.         cmd.Parameters.AddRange(paras);  
  81.         using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
  82.         {  
  83.             dt.Load(sdr);  
  84.         }  
  85.         return dt;  
  86.     }  
  87.     /// <summary>   
  88.     /// 执行不带参数的查询SQL语句或存储过程   
  89.     /// </summary>   
  90.     /// <param name="cmdText">查询SQL语句或存储过程</param>   
  91.     /// <param name="ct">命令类型</param>   
  92.     /// <returns></returns>   
  93.     public DataTable ExecuteQuery(string cmdText, CommandType ct)  
  94.     {  
  95.         DataTable dt = new DataTable();  
  96.         cmd = new SqlCommand(cmdText, GetCon());  
  97.         cmd.CommandType = ct;  
  98.         using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
  99.         {  
  100.             dt.Load(sdr);  
  101.         }  
  102.         return dt;  
  103.     }  
  104. }  

下面是两中调用方法:

  1. public int logincheck(string admin, string pwd)  
  2. {  
  3.   
  4.     SqlParameter[] paras = new SqlParameter[] {   
  5.     new SqlParameter("@AdminName",admin),  
  6.     new SqlParameter("@Password",pwd)  
  7.     };  
  8.     int i = Convert.ToInt32(sqlhelper.ExecuteQuery("Admin_check_login", paras, CommandType.StoredProcedure).Rows[0][0].ToString());  
  9.     return i;  
  10. }  

这种是直接与数据库交互没有用到sqlhelper类

  1. DataRow dr;  
  2.        string sql = "SELECT PKID, User_Name, Password, User_Grade,(SELECT UserGrade FROM UserGrade WHERE pkid = user_grade) AS UG FROM Users WHERE (User_Name =@UserName) AND (Password = @Password)";  
  3.   
  4.        SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);  
  5.        SqlDataAdapter sqlAdapter1 = new SqlDataAdapter(sql, sqlConnection);  
  6.        sqlAdapter1.SelectCommand.Parameters.Add(new SqlParameter("@UserName", SqlDbType.NVarChar));  
  7.        sqlAdapter1.SelectCommand.Parameters.Add(new SqlParameter("@Password", SqlDbType.NVarChar));  
  8.        sqlAdapter1.SelectCommand.Parameters["@UserName"].Value = tbName.Text.Trim();  
  9.        sqlAdapter1.SelectCommand.Parameters["@Password"].Value = tbPwd.Text.Trim();  
  10.   
  11.        DataSet product = new DataSet();  
  12.        sqlAdapter1.Fill(product,"Users");  
  13.        dr = product.Tables[0].Rows[0];     

相关内容